Serverless中为什么事件设计很重要


在构建事件驱动架构时,您将使用消息/事件在系统之间传递信息。这些消息的内容取决于您。这很好,因为它变得灵活,但同时也是一个问题,因为它很灵活!

许多构建事件驱动解决方案的人都是从在系统之间引发消息/事件开始的,而没有过多考虑事件设计。

  • 您的事件活动包含哪些内容?
  • 您的活事件动中应该包含哪些内容?

多年后,由于缺乏设计,许多人的版本、文档和消费者结构会发现很难理解这些事件的有效负载。

防止生产者和消费者之间的混淆

  • 事件驱动的架构对我们来说变得越来越容易,越来越多的生产者和消费者被集成到系统中。
  • 糟糕的事件设计可能会导致生产者和消费者之间的集成混乱。
  • 事件需要明确的命名意图,这有助于在每个事件中制定标准。
  • 标准使您可以更轻松地对事件进行版本控制、验证事件以及编写支持事件的工具。
  • 您可以在内部指定自己的标准,也可以依靠CloudEvents来帮助您定义标准。
  • 在构建事件驱动架构时考虑你的事件设计,考虑其他人将如何消费这些事件。
  • 不要在您的事件中暴露实现细节。

事件第一思维

  • 在设计 APIS 时,我们倾向于编写文档、规范、版本控制策略等等。在设计活动时,情况就不同了。
  • 在设计您的活动时,请借鉴我们从 API 管理中学到的知识,并将这些原则应用到您的活动设计中。
  • 考虑一下您将如何对您的活动进行版本控制,谁是您活动的目标受众?您要记录您的事件吗?
  • 如果事件是集成事件,请使用组织内的领域专家来帮助您设计事件。
  • 考虑您正在设计什么类型的事件活动,是私人活动还是集成活动。两者意味着不同的东西,你的设计会影响这一点。
  • 不要让事件成为事后的想法。考虑一些预先设计和演化策略。首先考虑事件。

糟糕的设计会减慢集成速度

  • 糟糕的活动事件设计会减慢生产者和消费者之间的整合。
  • 事件驱动的架构依靠消费者的进出和设计解耦架构而蓬勃发展。糟糕的活动事件设计会减慢这一过程并导致挫败感。
  • 清楚事件的命名和事件负载,考虑要公开的字段以及它们的命名/意图。
  • 不要让消费者猜测您的字段的含义,要明确他们的意图。
  • 确保您了解并能够释放活动事件的价值。
  • 考虑一下标准,您希望在您的活动事件中包含哪些标准?您的命名约定是什么?您想要包含哪些标头?