在当前的计划中,传入的命令通过函数应用程序处理,导致事件被发送到事件中心,然后实现视图
有人认为,与其将事件存储在表存储中,并根据事件和快照物化视图,我们应该:
只需将事件流式传输到 Azure Monitor 中的日志即可进行审核
我们可以响应命令立即对域对象进行更改,并将更改提要用作物化视图的事件源。
他甚至没有看到物化视图的优势。为什么不直接使用查询?争论是我们预计不会有很多流量。
他想通过将事件保存到 azure 监视器日志来完成整个审计日志 - 只是一个应用程序日志。相反,这些命令应该直接修改 Cosmos 中实体的表示,我们将使用来自 CosmosDB 的更改提要作为我们的域对象事件,或者我们将通过该流的订阅者创建新事件。
这实际上是一种有利的方法吗?你能想出我们不想这样做的任何理由吗?似乎我们会在这里失去一些东西。
他是说我们不再需要关心最终的一致性,因为我们会立即保持一致性。
我评估过的每个参考实现都没有按照他的建议去做。我对事件溯源/CQRS 范式的优点/缺点并不深入了解,所以我现在不知所措..目前正在疯狂研究
这是一个概念问题,因此没有太多代码示例。但是,这里有一些参考资料似乎支持我正在采取的方法。
https://medium.com/@thomasweiss_io/planet-scale-event-sourcing-with-azure-cosmos-db-48a557757c8d
https://sajeetharan.com/2019/02/03/event-sourcing-with-azure-eventhub-and-cosmosdb/
https://docs.microsoft.com/en-us/azure/architecture/patterns/event-sourcing
materialized-views cqrs event-sourcing microservices azure-cosmosdb