【发布时间】:2021-02-05 17:51:52
【问题描述】:
我是 Axon 框架、CQRS 和 DDD 的新手。我被教导使用关系数据库创建简单的 CRUD 应用程序。因此,我首先专注于构建数据模型,而不是领域模型。 我想改变我的软件方法,使其更加务实并创建真实世界的应用程序。因此,我想使用 CQRS 模式和事件溯源。
我现在正在使用 Spring Boot 和 Axon Framework 开发一个库应用程序。基本要求之一是用户已借书。我有两个用于用户和书籍的聚合。
这是我的 BookAggregate:
@Data
@AllArgsConstructor @NoArgsConstructor
@Aggregate
public class BookAggregate {
@AggregateIdentifier
private UUID id;
private String name;
private String isbnNumber;
private int amountOfCopies;
private Author author;
private Genre genre;
private PublishingHouse publishingHouse;
...
这是我的用户聚合:
@Data
@AllArgsConstructor @NoArgsConstructor
@Aggregate
public class UserAggregate {
@AggregateIdentifier
private UUID id;
private String firstName;
private String lastName;
private String email;
private String password;
private String confirmPassword;
private Set<Role> roles;
private Date birthDate;
private String telNumber;
private Address address;
...
我的问题是:我应该在这两个聚合之间创建一个中间聚合,比如 SQL JOIN 吗?在这个示例中,我想看看在 Axon 框架中实现两个聚合相互通信的类似用例。
【问题讨论】:
标签: spring-boot domain-driven-design cqrs axon