我是SOA (面向服务的体系结构)的新学习者,对于下面的场景,我有一个问题:
在一家公司(Mycompany)中,有销售团队(这是业务能力的技术权威-here Sales是业务能力)。Mycompany.Photos.com和Mycompany.Grocery.com表示,该公司决定生产2款产品。对于这两个网站,他们需要销售能力,即订单接受能力。
因此,销售团队必须为这两个网站工作。因为,这两个网站都需要销售能力。
现在的问题是销售团队应该为每个网站创建两个不同的数据库以及两个不同的端点吗?
例如:
如果销售团队最初有一个队列"Mycompany.Sales.Endpoint“并接收CreateOrderCommand。它处理CreateOrderCommand,在sales中创建订单并发布OrderAcceptedEvent。当时他们只支持一个网站。如果他们开始用相同的端点支持这两个网站,那么销售如何区分这个订单是否适用于Mycompany.Grocery.com或Mycompany.Photos?我们应该把Mycompany.Sales.Endpoint分成2种吗?销售团队应该知道照片网站订单和Grocery网站订单吗?
我能想到的一个答案是:
我很抱歉这么长时间的留言。我找不到任何捷径来解释这件事。
发布于 2017-04-19 20:44:33
服务是业务能力的技术权威。
如果您应该能够区分订单与任何一个系统,但您不能,您可能正在为多个业务功能构建一个“技术权威”。
除此之外,服务可以有许多组件。与其专注于技术问题,不如专注于业务问题,看看你是否可以解释。但是,像Stackoverflow这样的平台,在问答中有1比1的比例,可能并不适合这样的问题。
发布于 2017-04-21 07:31:16
我认为更好的方式来思考这种情况--实际上你有两家公司--一家在食品业,一家有相应的能力来弥补,另一家在摄影行业。即使这两家“公司”碰巧共享相同的公司文件,你也不应该把它看作一个单一的实体。
https://stackoverflow.com/questions/43502357
复制相似问题