事件流数据模型

dauxcl2d  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(453)

我正在为我们公司正在构建的一个新的事件和流处理系统设计一组模式,以便将几个当前断开连接的系统连接起来。我们已经清楚地定义了12个域模型,现在正在尝试将一组事件模式组合在一起,所有应用程序都将通过事件到OutConfluent(kafka)平台。然后,samza将提取并处理这些数据,以执行各种作业,然后为我们的特定领域服务填充数据库。
这一切都很好,我们从每个域(例如地址)一个事件开始,但是,我们很快遇到了需要不同类型事件的不同数据的问题。例如,创建地址的事件需要域中的所有(或大部分)字段。而更新只需要一个id和更新的内容。
所以,我要找的是过去做过这件事的人的一些建议?理想情况下,我希望每个域只使用一个事件模式来保持它的整洁。这样,每个事件都有一个对应的kafka队列,可以轻松地重放以恢复状态或返回到特定的前一个状态。但是,感觉更简单、更实用的方法是为每个动词使用一个单独的模式(即create、update、delete)
一些相关的堆栈细节:
融合rest代理->avro->kafka->samza->各种数据库。

ie3xauqp

ie3xauqp1#

这个问题很老了,但由于还没有回答,我要试一试。问题是,您的事件应该反映业务模型中状态的变化,这通常会反映已发生的活动。看看您的示例,您可能会遇到以下事件:
newuser,地址可能在您的系统中,也可能不在系统中,但是您仍然需要有一个自然密钥来决定是否是这样。
用户重新定位,同上
我也要走了
addresscorrection,可能是只需要提供部分字段的情况
它们显然只是例子,你决定的事件取决于你的商业模式。

相关问题