Event-carried State Transfer 如何实现?

How to implement Event-carried State Transfer?

我观看了 Martin Fowler 先生关于事件驱动架构的研讨会。我看到了 Event-carried State Transfer 的好处,但仍然没有找到像他说的那样做的方法。如何从这个数据库中不断的往数据库里复制数据,这个复制会不会出错?

直接从一个数据库复制到另一个数据库通常不是一个好主意,因为它会产生耦合。更好的方法是让一项服务发布有关更改的事件,然后其他服务可以订阅这些事件。

事件的发布可以通过多种不同的方式实现。例如:

  • 发布者可以发布订阅者可以轮询和遍历变化的 ATOM 提要。例如,EventStoreDB 发布 ATOM feeds 来支持这一点。

  • 发布者可以将其事件发布到 Kafka,然后订阅者可以从中消费事件。