我认为事件源的概念是事件源与域层相关,而该层不能与基础结构层耦合。因此,我将不使用Prooph /事件源组件,这就是为什么Prooph的团队将不维护事件源组件的原因。 (提及了this article)
问题来了,Aggregate,DomainEvent等都属于Domain层,它们被放入事件源组件中。事件存储属于基础架构层,因此我可以直接使用prooph / event-store组件。但是,我发现Prooph\EventSourcing\Aggregate\AggregateRepository
中使用了类prooph/event-store-symfony-bundle
,为什么将AggregateRepository放在事件源中?我认为存储库要进行基础架构定义,事件存储symfony捆绑包不应再使用事件源组件,也不应将存储库用于事件源。
那使我感到困惑。所以我现在不能使用prooph / event-store。
您如何看待?
答案 0 :(得分:0)
存储库是域模型和基础结构之间的链接。之所以将其放入事件源组件中,是因为事件存储区完全不关心聚合及其组织方式。事件存储管理事件流。只有存储库才能使它成形。它使用偶数存储的事件流功能来管理聚合的事件历史记录。因此,存储库也是您的责任。您是对的,新版本的symfony捆绑包不应再包含存储库实现,而应仅提供prooph / event-store。还没完成实际上,prooph /事件源一直保持到2019年底,因此我们并不着急。
无论如何,我强烈建议您看看Event Machine。目前,它基于prooph /事件源,服务总线和事件存储,但是已经提供了抽象层以及一种将域模型和系统其他部分与prooph和Event Machine本身完全分离的方法。只需完成本教程即可了解更多信息(需要4到6个小时)。