第四种模式:分层API架构上事件驱动的状态管理
事件驱动并不是一个新的设计模式。许多ESB最初的设计模式就是一个事件驱动系统。当在微服务体系上实施事件驱动架构时,它能够提供一些强大的抽象。事件驱动系统通常使用某种类型的队列(类似于面向消息的系统),但是围绕队列所传递内容的设计和行为,强制执行一个标准;具体来说,就是事件。
人们经常将事件驱动模式与其他模式相混淆,因此在事件驱动模式中涵盖了大量的设计。严格地说,事件是关于过去发生的,具有相关代表性状态和时间戳的东西。事件允许接收它的服务通过按顺序重放事件来重建状态的物化视图。然而,在许多实现中,往往将事件(已经发生了的事情)与命令(让某件事情发生)混淆在一起。如果事件和命令不进行区分的话,架构设计的可预测性是有缺陷的。也就是说,不可否认,事件驱动的设计模式优于面向消息的方法(因为事件驱动的设计更为具体);但是由于事件驱动的设计模式缺乏一致性,在实现中往往会出现问题。但是,鼓励并执行一致标准的团队会发现,事件驱动的设计模式能够在微服务体系结构中工作得很好。
问题:
为了确保系统内数据的完整性,需要复制关键业务事件,以便在微服务或数据存储之间进行同步。
解决方案:
使用常见的事件抽象来表