Здравствуйте, заинтересовала меня модель Event sourcing, и в качестве эксперимента накидал Todo-шку с использованием этого подхода. Я бы хотел чтоб бы вы посмотрели на реализация и возможно предложили как по другому реализовать евенты, их мутацию, и вообще доставание агрегата. Скажу сразу что интересует только вариант в одной базе, а про разделение на модели чтения и записи я знаю.
https://github.com/BashkaMen/SimpleEventSourcing-Todo
Так же есть пару конкретных вопросов:
1) Есть команда и событие создание Todo припустим со временем добавится ещё что то, припустим поле description, я должен модифицировать евент создания или создать event создания 2.0? Если создавать новый, то не будет ли со временем по пару десятков евентов, которые существуют только чтоб поддерживать старые евенты?
2) Если я нашел баг, который не верно создавал евенты какие варианты это исправить? Ведь евенты по идее удалять нельзя.
3) Когда я захотел достать из базы все Todo я в начале искал все евенты по типу "TodoCreated", взял их AggregateId и потом пошел доставать сами агрегаты это верный подход?