在构建事件驱动架构时,您会发现自己使用了许多不同的模式,而不仅仅是一种。当您深入研究 EDA 应用程序时,您会看到混合了点对点消息传递、发布/订阅、编排、编排,也许还有一些事件源等等……
我相信结合使用这些模式有助于构建一个有弹性、可用且可扩展的事件驱动架构。
流程管理
- 管理工作流或过程的编排器
- 我们必须执行业务逻辑,这封装了
- 通常事件从流程管理器触发到其他消费者
事件溯源
- 存储事件并使用此信息计算状态
- 下游预测可以使用它来计算他们自己的世界观
- 变化数据捕获流行听变化
- 审计在这里很棒,因为您可以看到正在发生的一切。
事件流
- 通常用于实时处理信息
- 在某种形式的界面上看到的用户交互示例(例如点击)
- 消息被放到流中,消费者选择他们想听的地方
- 消费者使用偏移量从流中读取消息。
- 这方面的例子是Amazon Kinesis
点对点消息传递
- 将消息发送到通道供下游消费者处理
- 多个消费者可以从队列中取消息进行并发处理
- 高度可扩展的模式
更改数据捕获
- 对针对您的数据进行的更改做出反应
- 监听新的、删除的或更新的
- 将消费者附加到流程信息的更改
发布/订阅
- 向下游消费者发送通知
- 扇出事件
- 消费者获得自己的事件副本
- 为解耦应用程序和扩展团队而创建
详细点击标题