broadway/event-store-mongodb

Broadway 的 MongoDB EventStore 实现。

0.5.0 2020-04-30 08:22 UTC

README

build status

安装

使用 composer 安装包

$ composer require broadway/event-store-mongodb

配置

注册服务

parameters:
    mongodb_host: localhost
    mongodb_port: 27107
    mongodb_database: default 
    
services:
    broadway.event_store.mongodb_client:
        class: MongoDB\Client
        arguments: ['mongodb://%mongodb_host%:%mongodb_port%']
    
    broadway.event_store.mongodb_collection:
        class: MongoDB\Collection
        factory: ['@broadway.event_store.mongodb_client', selectCollection]
        arguments: ['%mongodb_database%', 'events']
    
    broadway.event_store.mongodb:
        class: Broadway\EventStore\MongoDB\MongoDBEventStore
        arguments: ['@broadway.event_store.mongodb_collection', '@broadway.serializer.payload', '@broadway.serializer.metadata']

为事件集合创建索引

db.getCollection('events').createIndex({'uuid': 1, 'playhead': 1},{'unique': 1});

测试

进行测试需要一个正在运行的 MongoDB 实例。要启动本地 MongoDB,可以使用提供的 docker-compose.yml

docker-compose up -d

运行测试

./vendor/bin/phpunit