实现事件驱动架构EDA面临的缺点

以下是对构建 EDA 应用程序时应考虑的挑战性问题:

1.缺乏幂等处理
消费者可能会对事件进行多次处理(或者您可能需要重放事件、故障等)。使用幂等性 可以帮助您构建没有副作用的解决方案。

2.误将命令与事件混为一谈
开始时很容易,但命令和事件是有区别的。消息/事件的意图是什么?您想执行一个操作还是引发一个事实事件?了解两者的区别会有所帮助。

3.多用途事件
在事件中添加字段很容易,但却不会过多考虑其设计和影响。这样做会影响事件的意图,消费者可能很难理解。用一个事件来统领所有事件?还是分成多个活动事件?值得思考....

4.缺乏文档
老生常谈,缺乏系统文档会带来伤害。在构建事件驱动架构时,缺乏对消费者/生产者的了解可能会导致一团糟。考虑一下如何记录这些信息,把这些信息放在哪里,以及架构如何发展。这些东西的可见性会有所帮助。

5.泄露实现细节
引发事件可能很简单,但要知道在事件中加入什么却很难。不要在事件中泄露太多实现细节。消费者可能不想知道内部域的信息,因此请将您的域拆分开来,让您的事件保持清洁。

6.缺乏标准/结构
开始时,您可能只有几个事件,标准可能不会出现,但随着时间的推移,当您有了上百个事件时,您可能会希望在事件中制定标准。你的活动应该遵循什么样的结构?它们都应该包含哪些元数据?您可以使用哪些开放标准?

7.不结合上下文BC设计事件
事件一定是属于某个界限上下文BC中发生的,事件只是反映了某个事实,但是不能反映事实发生的上下文,脱离上下文设计事件会导致,只认事实的教条主义。