我们有这个DDD项目,我们有一个以上的BC,我们有这个场景,我们想要定义一个适当的方式来存储帐户设置。
在场景A中,我们将为所有BCs设置一个BC存储设置,并相应地将其发布到每个BC,在场景B中,每个BC保存自己的设置,而在场景C中,只有一个BC存储所有设置。
场景A很好地维护所有业务逻辑在一个地方,它保持BCs解耦,但这是维护每个BC的发布/订阅的开销。另一方面,场景B的开销较小,但如果任何BCs需要使用来自不同BC的设置(业务逻辑总是可以更改),则BCs再次紧密耦合。场景C提供的开销最少,但不具有自主性。
方案的选择仅仅取决于业务需求,还是有一些DDD模式我们应该在这里遵循?

发布于 2016-11-21 22:58:33
您的分析非常好,所有三个选项似乎都是有效的,尽管它们有不同的特性。现在,您需要评估哪种设计适合您的特定情况。
考虑一下订单管理和定价管理还没有收到最新的设置是否是灾难性的。如果是这样的话,那么场景A就不好了。
考虑您是否希望用户能够查看和编辑他们的所有设置,即使订单管理或定价管理正在经历错误。如果是这样的话,那么场景B就不好了。
考虑订单管理和定价管理是否需要能够读取设置,即使帐户管理正在经历错误。如果是这样的话,那么场景C就不好了。
https://softwareengineering.stackexchange.com/questions/336481
复制相似问题