Here’s an excerpt of an event model for an Identity aggregate:
Is this how you would recommend it be implemented?
@Aggregate
class Identity {
@AggregateIdentifier
private String accountNumber;
private String name;
private int authCode;
Identity() {}
@CommandHandler
Identity(RequestIdentity command) {
apply(new IdentityRequested(
command.getAccountNumber(), command.getName(), command.getCell()));
}
@EventSourcingHandler
void on(IdentityRequested event) {
this.accountNumber = event.getAccountNumber();
this.name = event.getName();
this.handleAuthCode(new SendAuthCode(event.getCell()));
}
@CommandHandler
void handleAuthCode(SendAuthCode command) {
apply(new AuthCodeSent(
command.getCell(), this.dummyAuthCode()));
}
@EventSourcingHandler
void on(AuthCodeSent event) {
this.authCode = event.getAuthCode();
}
// ...
`
`