【发布时间】:2020-04-21 20:38:12
【问题描述】:
对于一个新项目,我想使用事件溯源和 CQRS。因此,我想将应用程序状态的所有更改存储为事件的序列。此外,我的任何服务都应该能够订阅其他服务发出的事件流。
这些是我的要求:
- 仅作为服务产品,不安装 Kafka 或其他软件。
- 保留来自消费者的事件顺序。 *(参见下面的示例)
- 支持多个事件生产者和多个事件消费者。 *(参见下面的示例)
- 必须将新事件推送给订阅主题的消费者。
- 只有在所有消费者都处理完事件后才需要存储事件,因为消费者可以持久化和聚合事件。
这些要求很不错:
- 应该线性缩放。
- 应该自动缩放。
- 如果生产者和消费者在同一地区,则交付时间应在 99% 的情况下
- 应该将事件数据存储为二进制,而不需要与 Base64 相互转换。
- 应按使用量付费,开发期间的初始成本低于每月 20 欧元。
* 具有多个生产者和消费者的事件顺序示例: 一个有两个生产者和两个消费者的例子。第一个生产者发布事件 A、B、C 第二个发布事件 1、2、3。那么第一个和第二个消费者可能都得到 A、B、C、1、2、3 或 A、1、2、B、C , 3 但不是 A, C, B, 1, 2, 3。此外,所有消费者都需要获得所有事件的完全相同的顺序。
我发现 Amazon Kinesis Data Streams 可以满足我的要求,但我很惊讶我找不到来自 Google Cloud 或 Azure 的类似解决方案。
【问题讨论】:
标签: cloud event-sourcing