我在一家小公司工作,我们将深入研究微服务领域。正如预期的那样,我们遇到了一些障碍。
截至目前,我们正在开发一种用于管理重型机械的新软件,但让我们着眼于一个有限的小环境:工单。为了简单起见,我将省略不必要的细节。无论如何,这种有限的上下文是由技术人员,团队和实际工作订单组成的。团队由一组技术人员和一个团队经理组成,团队经理也是技术人员。让我们考虑一下软件的一个小方面:技术人员应该能够看到发布给他们的所有工作订单,如果他们恰好是团队的经理,他们应该能够看到发布给他们的所有工作订单。该团队的任何成员。
我的第一个想法是创建一个服务。经过一番研究,我开始怀疑我是否应该创建两项服务:一项用于管理团队和技术人员,另一项用于实际管理工单。第二种方法的问题在于,控制应检索哪些订单的逻辑部分必须放在API网关/ BFF中。由于工作订单不了解团队(我实际上认为这是正确的设计),因此API网关将必须检索以技术人员为经理的团队,以便检索这些人员的所有成员的所有工作订单。团队。
我在这里担心的是,似乎某些业务逻辑正在泄漏到API网关,并且我不确定那还好,我还担心会创建过时的微服务。另一方面,这种有界上下文可能会在其他软件上使用,而这可能没有利用团队的概念。
我还考虑过要创建第三项服务来协调这项工作,但是到目前为止,还没有找到任何支持该想法的理由。
因此,总结一下:我应该创建一个,两个还是三个服务?我一定要创建两个,但是似乎还不能决定。
感谢抬头的家伙。