Monolith to Separate Services帮助和指导

时间:2016-07-21 12:28:09

标签: restful-architecture microservices

我正在将一块巨石打破成单独的微服务。我已经有一个联系服务 - 它存储姓名,电子邮件地址,电话号码等。

我想为组织/企业创建另一项服务。这些组织有联系人,所以我想使用我现有的联系服务而不是重新创建它。

有人可以建议我应该如何构建这个吗?我想到了以下两种方式。

1)在组织服务中实施联系服务。因此,组织服务的用户不知道联系服务是独立的。这样做的缺点是我需要在Org服务中重新创建一个端点,这些端点只是(或多或少)传递给联系服务。

2)让这些服务的用户通过联系服务创建联系人,然后创建一种将此联系人“附加”到组织的方式。

其中一个更好吗?还是有另一种我没想过的方式?

1 个答案:

答案 0 :(得分:0)

  

或者还有另一种我没想过的方法吗?

3)将组织添加到Contact域模型。

对我来说,联系人和组织自然属于同一个“联系”或“CRM”业务领域。

换句话说,如果您要删除联系人服务,组织服务是否可以执行任何有用的工作?如果没有,那么这可能是一个信号,您应该简单地将组织作为联系业务域的一部分。

这尤其正确,因为您概述组织服务的其中一个选项只是作为联系人服务的外观。如果Contact服务中的Contact模型与组织服务中该模型的表示没有实质性差异,那么它们实际上是可以互换的,因此不应该分开。