
结论
|
227
schema
演化为事件和实体的变更提供了一种响应新业务需求的机制。它使生产者能够使用
新的和修改过的字段生成数据,同时还允许不关心变更的消费者继续使用旧的
schema
进
行消费。这极大地减少了非关键变更的频率和风险。同时,其余的消费者可以独立地升级
代码,使用最新
schema
的格式来消费和处理事件,使它们能够访问最新的数据字段。
schema
还带来了一些有用的特性
,比如代码生成和数据发现。代码生成器可以创建与生产
和消费应用程序相关的类
/
结构体
。这些强定义的类
/
结构体有助于在编译阶段或本地测
试时检测生产和消费中的格式错误,以确保可以更好地生产和消费事件。这使得开发人员
可以严格聚焦于处理和转换这些事件的业务逻辑而不是数据通道。同时,
schema
注册表提
供了一种可搜索的方法来确定哪些数据属于哪个事件流,从而更容易发现流的内容。
17.5
数据解放和单一事实来源
一旦有了可用的数据通信层,就可以让关键业务数据进入里面。从组织的各种服务和数据
存储中解放数据是一个漫长的过程,将所有必要的数据放入事件代理需要一些时间。这是
解耦系统并向事件驱动架构迈进的关键一步。数据解放将数据的生产和所有权与下游消费
者对数据的访问进行了解耦。
应该先解放对组织达成下一个主要目标最常用及最关键的数据。从各种服务和数据存储中
抽取信息的方法有很多,每种方法都有优点和缺点。权衡对现有服务的影响与过时数据、
缺少
schema
以及解放事件流中的内部数据模型暴露的风险是很重要的。
以事件流的形式提供随时可用的业务数据使得可以通过 ...