事件驱动架构中的通用事件

时间:2019-12-22 12:25:37

标签: microservices event-driven event-driven-design

我阅读了一些有关事件驱动架构的文章。每篇文章都说通用事件是不好的做法。但我可以想象一下,可能发生一般事件的情况。

例如,我有3个服务。报告服务A和B的服务。服务A和B发布事件AProcessingFinished和BProcessingFinished。订阅这些事件的报告服务并生成报告。

设计好吗?如果添加服务C,则必须修改报告服务才能生成新报告(订阅新事件)。

拥有一些诸如ProcessingFinished之类的通用事件会更好吗?这样,报告服务就不会与其他服务紧密结合了。

1 个答案:

答案 0 :(得分:0)

事件与系统中发生的事情有关。从本质上讲,它是过去。 UserCreated, SessionStarted etc.因此,这是系统中发生的特定事件。正如您所提到的,ProcessFinished的创建非常通用的事件夸大地说了SomethingHappened之类的东西。

我建议您仔细地创建事件,这些事件来自这些事件的使用者,并且独立。这样,每个消费者现在都可以布局自己的业务逻辑,而现在和将来都无需接触事件模式。

在我看来,仅仅为了在消费者方面合并某些事件而创建通用事件会给中长期带来头痛和问题。您应该能够使用各种事件来轻松地在服务中开展业务。