4

我正在为我正在考虑在不久的将来开发的 EvenSourcing 和 CQRS 系统寻找 EventStore。我已经开始熟悉 CockroachDB 并且对可扩展性印象深刻,同时拥有所有这些保证,这对于事件存储和查询来说非常好。

我在这里想,我猜一个(?)事件表。看起来与此类似的东西:

表中的列

  • 聚合 ID [指南]
  • 数据 [Blob]
  • 序号 [长]
  • 版本 [整数]

所以我有两个问题:

  1. CockroachDB 作为 EventStore 是一个不错的选择吗?
  2. 在这种情况下,它会与我的性能和规模扩展相匹配吗?例如,随着时间的推移,随着数据的增加和更多的读写流量/操作,它会按预期扩展吗?
4

2 回答 2

3

Cockroachdb 作为 Event Store 是一个不错的选择。需要注意的一件事是如何选择主键。例如,如果您使用时间戳作为主键,您将看到所有写入都命中同一个节点,因此最好选择一个键,以便及时完成的​​写入均匀分布在所有节点上。选择一个随机数作为 eventID 并将其用作密钥将起作用。

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

于 2017-07-14T13:25:35.480 回答
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

于 2021-04-23T17:06:28.953 回答