Skip to content

Instantly share code, notes, and snippets.

@aludwiko
Created April 16, 2021 10:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aludwiko/caf8c3371dc32ce15538cffbcaf6260b to your computer and use it in GitHub Desktop.
Save aludwiko/caf8c3371dc32ce15538cffbcaf6260b to your computer and use it in GitHub Desktop.
public class UserEntity extends EventSourcedBehavior<UserCommand, UserEvent, User> {
@Override
public CommandHandler<UserCommand, UserEvent, User> commandHandler() {
return newCommandHandlerBuilder().forAnyState()
.onCommand(UserCommand.class, (user, command) -> {
List<UserEvent> events = user.process(command);
return Effect()
.persist(events)
.thenReply(command.replyTo(), user -> CommandProcessed.of());
})
.build();
}
@Override
public EventHandler<User, UserEvent> eventHandler() {
return newEventHandlerBuilder().forAnyState()
.onEvent(UserEvent.class, (user, event) -> user.apply(event))
.build();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment