prooph / event-store-mongodb-adapter
ProophEventStore的MongoDB适配器
v3.0.1
2018-08-26 18:10 UTC
Requires
- php: ^7.1
- ext-mongodb: ^1.5.2
- beberlei/assert: ~2.4
- mongodb/mongodb: ^1.4.2
- prooph/common: ^3.7
- prooph/event-store: ^6.3
Requires (Dev)
- malukenho/docheader: ^0.1.4
- phpspec/prophecy: ^1.7
- phpunit/php-invoker: ^2.0
- phpunit/phpunit: ^7.1.4
- prooph/php-cs-fixer-config: ^0.2.2
- psr/container: ^1.0
- sandrokeil/interop-config: ^2.0.1
- satooshi/php-coveralls: ^1.0
Suggests
- psr/container: For usage of provided factories
- sandrokeil/interop-config: For usage of provided factories
README
MongoDB适配器用于ProophEventStore
**注意**:MongoDB适配器**不兼容**prooph/event-store v7。MongoDB对ACID的支持有限,与新版的prooph/event-store不兼容。MongoDB是一个优秀的读模型数据库选择,但遗憾的是,它不能用作需要跨文档(事件)事务的事件存储。Codeliner发布了一个Gist,展示了在非常有限的范围内支持v7部分功能的自定义MongoDB事件存储实现。如果您想尝试重新启用MongoDB,请与我们联系,我们可以讨论这个问题!
该适配器的支持将于2017年12月31日结束。
要求
- MongoDB >= 4.0
- MongoDB PHP驱动程序 >= 1.5.2
事务
该适配器的事务写入关注点是majority
。
该适配器的事务读取关注点是snapshot
。
您可以禁用此适配器的事务。
考虑事项
此适配器不使用MongoDB ObjectId作为其主键,而使用UUID(字符串)。
我们推荐将AggregateStreamStrategy作为与该适配器一起使用的最佳策略。
请注意,事务安全性仅适用于副本集。MongoDB 4.2计划支持分片集群。因此,在分片集群环境中使用此适配器是不安全的,因为MongoDB无法保证事务安全性。
如果由于MongoDB游标而开始迭代,则无法重置流。