主要观点:
- 对事件驱动架构(EDA)的一些常见误解进行澄清,包括 EDA 与事件溯源、Kafka 的关系,以及 EDA 的关键要点等。
关键信息: - EDA 不是事件溯源,事件溯源是服务内的数据持久化方式,而 EDA 是服务间的通信方式,两者可单独存在。
- Kafka 是流行的基于日志的消息代理,用于 EDA 很好,但不是 EDA 的必备工具,不用 Kafka 也可构建 EDA 架构。
- 不能仅关注单个消息的语义来判断是否为事件,还要看整体流程,像伪装成事件的命令-响应流就不是真正的 EDA。
- 可以在后端构建 EDA 架构,即使前端是 REST API,内部服务间通信可采用 EDA 以提高可扩展性和弹性。
- EDA 不比基于 REST 或 RPC 调用的架构更复杂,只是初学时可能较难理解,但其角色和责任更清晰。
重要细节: - 事件溯源通过存储状态变化事件来恢复状态,而 EDA 是服务间发布和订阅事件。
- Kafka 发送的“记录”只是字节数组,可用于各种消息,其主页标签易误导。
- 常见系统中可能只有内部服务间通信是 EDA,外部与用户界面或第三方系统通信用其他模式。
- 事件驱动架构中,发出事件后就不再关心后续处理,由订阅者负责,责任更清晰。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。