我在SOA(面向服务架构),我有以下情形一个问题新学:缩放服务边界(SOA)
在公司(MyCompany的),销售团队是有(这是一个技术权威业务能力 - 销售就是业务能力)。该公司决定创建2个产品,称Mycompany.Photos.com和Mycompany.Grocery.com。对于这两个网站他们都需要销售能力,即订单接受能力
因此,销售团队必须为这两个网站工作。因为,这两个网站都需要销售能力。
现在的问题是销售团队应该为每个网站和2个不同的终端创建2个不同的数据库吗?
例如:
如果销售团队最初有一个队列 “Mycompany.Sales.Endpoint”,它接收CreateOrderCommand。它处理CreateOrderCommand,在销售数据库中创建订单并发布OrderAcceptedEvent。当他们只支持一个网站时。如果他们开始支持具有相同端点的两个网站,那么Sales将如何区分这个订单是Mycompany.Grocery.com还是Mycompany.Photos?我们应该将Mycompany.Sales.Endpoint分成2个吗?销售团队是否应该了解照片网站订单和杂货网站订单?
一个答案,我能想到的是:
- 销售团队可以建立各2个不同的数据库为Mycompany.Grocery.com 和Mycompany.Photos.com
- 部署2个不同的业务组件(BC)为每个网站。
对于MycompanyPhotos,销售将有2个终端对Mycompany.Grocery.com BusinessComponent和“Mycompany.Photos.Sales.Endpoint”说“Mycompany.Grocery.Sales.Endpoint” 。
即使它们处于相同的销售限制环境下,它是否可以有2个业务组件(BC)?我是否正确,这是我们规模的销售团队将支持这两种产品的销售能力吗?
对于长信息我很抱歉。我找不到解释这个问题的捷径。
嗨@丹尼斯感谢您的回复。我编辑了我的问题,并删除了个人一对一的问题。但我仍然认为这是一个有效的SOA问题。 –
服务不应该有“许多”业务组件 - 2可能是最应该有的。 –
@RupeshKumarTiwari这当然是一个很好的问题,但是讨论在StackOverflow上比在论坛中更难,在论坛中你可以继续提问并在单个线程中回答问题。我认为论坛更适合这类问题。 –