Хабр Курсы для всех
РЕКЛАМА
Большая витрина: от крупнейших школ до частных авторов. Сравнивайте по цене, длительности, формату и выбирайте самый подходящий курс!
Публиковать команды чаще всего требуется публиковать в конце выполнения логики, так как если возникнет ошибка, то ни одна команда не должна была быть опубликована.
if (command.getUsername()!=null && command.getUsername().isBlank())
throw new RuntimeException("имя должно быть заполнено")
Почему не использовать стандартный валидатор?
Кажется у вас 3 ошибки в слове write - как-то режет глаз.
Event sourcing+CQRS с помощью Spring