事件存储中的数据如何?

时间:2017-03-15 02:54:12

标签: akka akka-persistence

我理解事件来源是关于存储代表状态变化但不代表状态本身的事件。所以在我的情况下,我从Kafka收到消息,每条消息都用JSON编码,有50个字段,如{key1: val1, key2: val2, .......key50: val50},每条消息都包含这些密钥的全部或子集。现在我的目标是将这些消息流存储为Cassandra中的事件,并让我将更改存储在状态中我总是需要知道当前状态以查看由下一个请求引起的状态更改但我不知道这是如何完成的更重要的是数据存储区中的数据如何?

1 个答案:

答案 0 :(得分:0)

数据存储区中的事件可能如下所示(存储在sql db中):

  • ID
  • uuid:eventSourcing聚合ID
  • playhead:此聚合的事件数索引(例如:事件编号5)
  • type:事件的名称(例如:CardWasCredited)
  • payload:此特定事件所需的所有数据(例如:对于CardWasCreated事件,您将拥有'amount,card_number,comment ... Etc'
  • 元数据:用户名...
  • recorded_on

然后处理这些事件以创建一个保持当前状态(cqrs)

的读取模型