首页 > 解决方案 > RailsEventStore 中的持久关系投影

问题描述

我正在尝试使用 RailsEventStore 构建 CQRS 和事件源 Rails 5.2.x 应用程序。

现在我想将我的事件流投影到一个关系模型中,理想情况下只使用 ActiveRecord 和我也用于我的事件存储的 PostgreSQL 数据库。

在 RailsEventStore 的文档中,我只发现了动态的、非持久的投影。

是否有任何基础设施可用于持续构建和更新事件流的关系表示?它需要记住在应用程序重新启动时哪些事件已经应用于关系模型。

如果你知道怎么做,请告诉我。

标签: ruby-on-railsrubycqrsevent-sourcingrails-event-store

解决方案


RailsEventStore 中没有开箱即用的后台进程来支持持久投影,就像 EventStore 数据库一样。

但是,您可以将一些部分组合在一起以实现类似的东西——事件处理程序链接

我的同事 Rafał 整理了几篇文章来记录这种方法:

如果您想将此类投影实现为单独的后台进程,而不是依赖事件处理程序(无论是否同步),那么带有PgLinearizedRepository的分布式RailsEventStore可能是一个很好的起点。


推荐阅读