CockroachDB作为Eventstore一个好主意?

时间:2017-07-13 20:01:03

标签: cqrs event-sourcing cockroachdb

我正在为EvenSourcing和CQRS系统寻找一个EventStore,我正在考虑在未来发展。我已经开始熟悉CockroachDB并对可扩展性印象深刻,同时拥有所有保证,这对于Event Store和查询都很好。

我在想这里,我猜一个(?)表的事件。看起来像这样的东西:

表格中的列

  • AggregateId [Guid]
  • 数据[Blob]
  • SequenceNumber [Long]
  • 版本[Int]

所以我有两个问题:

  1. CockroachDB是一个很好的选择吗?
  2. 在这种情况下,它是否符合我的表现和规模扩展。例如,随着时间的推移,随着数据的增加,它会按预期进行扩展,并且会更多地读取写入流量/操作吗?

2 个答案:

答案 0 :(得分:3)

Cockroachdb是一个很好的选择作为事件存储。需要注意的一件事是你如何选择主键。例如,如果您使用时间戳作为主键,您将看到所有写入都在同一节点上,因此最好选择一个键,使得及时写入的写入均匀分布在所有节点上。将随机数作为eventID并将其用作密钥将起作用。

CockroachDB尚未(即将推出)支持有关数据库更改的通知,这在将其用作事件存储时非常有用

答案 1 :(得分:1)

CockroachDB 现在支持以变更数据捕获 (CDC) 变更提要的形式通知数据库变更。这是文档:

https://www.cockroachlabs.com/docs/stable/stream-data-out-of-cockroachdb-using-changefeeds.html

以及一些相关的博文:

YouTube 上还录制了 CRDB 更改提要的演示/演示:

https://www.youtube.com/watch?v=UTaRWpNcOgk