基于微服务的事件存储

时间:2017-01-28 21:15:33

标签: microservices cqrs event-store eventsource

不熟悉域驱动设计的所有细节,在微服务架构中将每个服务视为自己的域并在每个服务上构建一个事件存储是否有意义?

不完全确定整个系统的单个整体事件存储可能会有什么权衡。例如,在系统中重放条件或调试跨服务依赖性更加困难。

1 个答案:

答案 0 :(得分:6)

关键是拥有一个明确的单一所有者 - 即如果你共享一个商店,那就没关系,只要一个服务只使用一组给定的流。

例如,在NEventStore v5 +中,这被编成了一个“桶”是商店内的细分 - 每个服务都以这种方式获得一组孤立的状态。或者可以通过SQL SB中的多个SCHEMA执行相同的操作。

当然有很多很好的理由分开到最大

  • 你不想让人们开始试图阅读跨服务
  • 您希望将服务设置为单独方式 - 您不希望对服务B进行任何基础结构更改以要求部署服务A
  • 拥有一个共享的lib,它可以与这个视图齐头并进,也是一个滑坡

应该说这个问题是一个普遍的约束,符合微服务(以及之前的SOA)的自治原则