Martin Fowler’s talk

Decoupling

假设有一个customer management service,它会publish一个“address changed”事件。service只需要subscribe这个事件就可以做出反应。

如果在以前,调用者需要make a function call,这需要调用者知道所有“subscriber”的功能。event-driven的一大特点是:不需要“直接调用”。也就是说,publisher不需要知道它的subscriber在干什么。

因此EDA的一个优点是decoupling。可以随意更改subscriber/增加或删除subscriber,而不需要更改publisher的代码。

缺点则是通过代码无法直接知道程序的overall behavior,需要结合MQ系统来看。

##