聂同学

一个程序员和架构师的实践与思考

“Reactive宣言里为什么有个消息驱动?”

宣言的其他方面描述的都是系统的外部特征:快速响应、容错、压力下的弹性。为什么单单加入“消息驱动”这个实现策略呢?

外部特征被纳入一个“宣言”容易理解,是作为一种承诺和目标。实现策略为何要被纳入一个宣言?毕竟,如果我的系统能实现被期待的外部特征,谁在乎是什么东西驱动的呢?消息驱动?神经驱动?意念驱动?随便啊。

表面看来确实如此。

答案在于,消息驱动在这里并不仅是一个实现策略。宣言中提到的“系统”是多层的,包括大大小小各层级的系统,其中大系统往往由小系统组成。当诸多小系统组成大系统的时候,大系统的实现策略就成了对小系统的外部特征要求。小系统之间的交互,要遵循的就是消息驱动这个一致约定,这对与小系统来说是外部特征,而不是实现策略。

所以消息驱动这个要点,在Reactive的系统生态中,是相互间既能松散自治又能协同合作的重要保证。虽然对系统的最终用户可能没有重要意义,但却是开发者之间的重要承诺和共同目标。

架构

分享 -