在带有事件源的微服务中,我应该将命令或事件保存到服务数据库中还是应该是一个大数据库?

时间:2019-06-13 12:34:31

标签: microservices cqrs event-sourcing

正如问题所述,存储命令和事件的最佳实践是什么? 我应该只存储命令,因为命令会生成事件?!

2 个答案:

答案 0 :(得分:1)

  

正如问题所述,存储命令和事件的最佳实践是什么?我应该只存储命令,因为命令会生成事件?!

在某些设置中,仅存储“命令”。例如,如果您查看LMAX的团队在共享他们的设计,那么您会发现他们写在日记中的是 input messages

在他们的上下文中,他们不必担心流程的基础域模型将发生变化(这将在日常维护窗口中,当一切安静时发生),因此,毫无疑问,系统状态将发生在给定的事件序列之后。

但是event-sourcing通常被理解为表示保存系统状态的表示-只是不扩展我们的数据结构,而是对其进行扩展(请考虑更改的链接列表)。我们持续发生的变化往往是投入的可观察效果,​​而不是原始投入本身。

答案 1 :(得分:0)

在事件采购体系结构中,事件是您状态的来源。因此,您需要存储事件-系统中记录的事实。