事件驱动架构中事件的双重性质

主要观点:事件在事件驱动架构中起核心作用,但对事件应包含内容缺乏共识,这可能源于视角不同。在当代事件驱动架构中,微服务通过发射和订阅事件协作,事件在服务间传递有触发动作和携带数据的双重作用,从不同视角(软件工程师/架构师与数据工程师)看待事件设计及包含内容各有不同,若只关注其中一个目的可能会使后续工作更困难,应综合考虑,标准做法是使用精心设计的宽事件并在事件中包含原因。

关键信息:

  • 事件在不同视角下作用不同,如软件工程师看重事件类型表示触发动作,数据工程师更关注数据统一。
  • 事件可在频谱两端,左端是“纯触发”,右端是包含所有属性的“宽事件”等多种称呼。
  • 软件工程师以不同类型事件实现业务流程,用不同命名类型应用通用语言,若只有一种事件类型需通过数据变化猜测。
  • 数据工程师希望流中只有一种事件类型以方便数据处理,如使用 Kafka 时按不同策略处理事件。
  • 设计事件时应兼顾触发和数据两方面,避免只关注一方面,某些情况下需使用宽事件,标准做法是使用精心设计的宽事件并包含原因。

重要细节:

  • 文中提到多种与宽事件相关的术语及解释,如fat events等。
  • 以购买电影票为例说明不同事件序列的含义。
  • 介绍了在 Kafka 中处理不同类型事件的方式及相关策略,如使用不同主题等。
  • 强调事件流是 API,设计时要像设计 RESTful HTTP API 一样谨慎,注意包含数据的量。
阅读 19
0 条评论