【发布时间】:2021-01-01 16:45:29
【问题描述】:
我有一个用于读取和写入操作的 SQL Server 数据库,并且我正在实施 CQRS 模式以实现代码隔离和可维护性,以便我可以将读取操作分配给团队中的少数资源并将写入操作分配给其他资源,我看到使用CQRS 似乎是一种干净的方法。
现在,每当我的数据库中的表发生插入/更新/删除时,我需要向其他需要了解我系统更改的系统发送消息,因为我的数据库是主数据,所以这里发生的任何更改需要将其投影到下游系统,以便他们获得最新数据并将其保存在系统中。为此,我可能会使用 MQ 或 Kafka,所以每当有变化时,我都可以生成关键消息并放入 MQ 或使用 kafka 进行消息传递。
到目前为止,我还没有像我想的那样使用事件溯源,因为我没有多个用于读/写的数据库,所以我可能不需要事件溯源,我的假设是正确的,即如果我们有单个数据库,我们就不需要需要事件溯源?或事件溯源可以在使用 MQ 或 Kafka 中发挥任何作用,我的意思是,如果我使用事件溯源模式,我可以先将数据保存在主数据库中,然后使用事件溯源模式将更改写入 MQ 或使用 kafka 写入消息我一无所知如果我们可以为 MQ 或 Kafka 使用事件溯源模式。
我需要事件溯源来将消息写入 MQ 或使用 Kafka 吗?或者在我的情况下根本不需要它,因为我只有一个数据库,我不需要知道记录系统发生的一系列更新,我只关心我的主数据库中记录的最终状态然后使用 MQ 或 Kafka 将更改发送到有 CRUD 操作的下游系统,以便它们获得最新的更改。
【问题讨论】:
标签: sql-server apache-kafka rabbitmq cqrs event-sourcing