我正在为即将到来的一组模式创建一个新的事件和流处理系统,我们正在我的公司构建几个当前断开的系统。我们已经明确定义了12个领域模型,并且正在尝试将所有应用程序将事件推出到汇合(kafka)平台的一组事件模式。然后,这些将由samza提取和处理,以执行各种作业,然后填充我们的特定于域的服务的数据库。事件流数据模型
这一切都很好,我们从每个域的一个事件(例如地址)开始。但是,我们很快就遇到了不同类型事件需要不同数据的问题。例如,创建地址的事件需要域中的所有(或大部分)字段。而更新只需要一个id和正在更新的内容。
那么,我在寻找的是那些过去做过这些的人的一些建议吗?理想情况下,我希望每个域只有一个事件模式保持清洁。这样我们就有一个相应的卡夫卡队列,每个事件可以很容易地重播以重新获得状态或返回到特定的先前状态。然而,这感觉就像是更简单和更务实的方法是使用一个单独的模式为每个动词(即创建,更新,删除)
一些相关的堆栈细节:
汇合REST代理 - > Avro公司 - > kafka - > samza - >各种dbs。