基于微服务的事件存储
microservice based event store
不熟悉域驱动设计的所有细节,在微服务架构中将每个服务视为它自己的域并依次为每个服务构建一个事件存储是否有意义?
不完全确定整个系统的单一整体事件存储可能会有什么权衡。例如,更难在系统中重放条件或调试跨服务依赖性。
关键是要有一个明确的单一所有者 - 即,如果您共享一个商店,那很好,只要只有一个服务使用一组给定的流。
例如,在 NEventStore v5+ 中,这被编纂为 "bucket" 是商店中的一个细分 - 每个服务都以这种方式获得一组独立的状态。或者可以通过 SQL SB 中的多个 SCHEMA 来做同样的事情。
当然也有很多很好的理由来最大限度地分开
- 您不想让人们容易阅读交叉服务的诱惑
- 您想使服务分道扬镳 - 您不希望服务 B 的基础架构更改需要部署服务 A
- 有一个共享库,可以与这个观点齐头并进,也是一个滑坡
应该说这个顾虑是一个符合微服务(以及之前的SOA)自治原则的普遍约束
不熟悉域驱动设计的所有细节,在微服务架构中将每个服务视为它自己的域并依次为每个服务构建一个事件存储是否有意义?
不完全确定整个系统的单一整体事件存储可能会有什么权衡。例如,更难在系统中重放条件或调试跨服务依赖性。
关键是要有一个明确的单一所有者 - 即,如果您共享一个商店,那很好,只要只有一个服务使用一组给定的流。
例如,在 NEventStore v5+ 中,这被编纂为 "bucket" 是商店中的一个细分 - 每个服务都以这种方式获得一组独立的状态。或者可以通过 SQL SB 中的多个 SCHEMA 来做同样的事情。
当然也有很多很好的理由来最大限度地分开
- 您不想让人们容易阅读交叉服务的诱惑
- 您想使服务分道扬镳 - 您不希望服务 B 的基础架构更改需要部署服务 A
- 有一个共享库,可以与这个观点齐头并进,也是一个滑坡
应该说这个顾虑是一个符合微服务(以及之前的SOA)自治原则的普遍约束