proophsoftware/mongo-read-event-store

只读MongoDB事件存储实现

dev-master 2018-03-08 09:00 UTC

This package is auto-updated.

Last update: 2024-09-17 02:17:25 UTC


README

安装

composer require proophsoftware/mongo-read-event-store

目的

该包提供了一个只读的mongodb事件存储,它连接到prooph/event-store v6 mongodb。获取的事件会在运行时提升为适用于prooph/common v4及以上版本定义的消息格式。只读的mongodb事件存储可以用于使用流到流的投影将v6 mongodb事件流迁移到prooph/event-store v7事件流。

此外,您可以在event-store-http-api项目中使用只读的mongodb事件存储来通过HTTP读取您的v6事件流。

限制

在prooph/event-store v7中引入了一个新的事件流位置,这是一个序列。这个新位置在EventStore::loadEventStore::loadReverse方法中得到处理,但v6流没有这样的位置。因此,我们将回退到按created_at排序,并使用$fromNumber - 1作为跳过选项。这模拟了迭代事件流,但由于相同的戳记,可能返回不同的事件顺序。

事件存储HTTP API

要使用event-store-http-api与只读mongodb事件存储,您需要使用本包提供的DecoratedReadOnlyEventStore包装它,因为http api包需要一个完整的事件存储实现。这意味着您不能使用http api的写操作。

索引

为了有效地按created_at排序事件,您应该在您的流集合中添加索引

$collection->createIndex([
    'created_at' => 1
], ['name' => 'prooph_rom_sort']);