【发布时间】:2021-01-28 22:38:57
【问题描述】:
我正在使用带有 Spring Boot 和 mongodb 的 Java 中的 DDD 原则编写一个练习应用程序。根据 DDD,聚合之间的通信仅通过消息传递发生。此时我没有分发应用程序,所有聚合都驻留在同一个应用程序中,所以我只是使用 Spring 消息传递功能来交换消息。
每个聚合恰好对应一个 mongo 文档。由事件触发的每个命令或操作都由@Transactional 注释保护,以确保以原子方式处理数据库事务和事件。 我想知道我应该在哪里存储事件?我可以将它们存储在 mongo 文档中吗?实际上,由于 mongo 事务跨越单个文档,这不是唯一的选择吗?
下一步是设置一个周期性任务,它将读取所有最近的事件并发布它们以模拟离线通信。此时,存储事件的单独文档集合可能是一个好地方。
附:我暂时不考虑事件溯源,因为它似乎更高级。
谢谢!
【问题讨论】:
标签: java mongodb domain-driven-design