Я знаю, что переписывание не следует делать в Event Sourcing.
У меня есть Product
агрегат с Stock
внутри. Операции работают подобно программному обеспечению для работы с электронными таблицами.
Если кто-то должен был внести поправку в определенный момент времени, такой как Стоимость или Количество, все должно быть пересчитано .
Существует стратегия определения запасов продукта, т. Е. «Первым пришел - первым вышел», «первым пришел - первым вышел».
Каждое действие датируется как Пополнение и Взятие.
Решение этого вопроса, о котором я сейчас думаю:
- Загрузить агрегат как обычно
- Применить поправку
- Повторно применить некоторые события, которые происходят после даты внесения поправки (если поправка должна быть на 2 января, применить события на 3 января и далее)
Я не уверен, есть ли способ обойти это, но это единственное решение, которое я придумал.
Еще одна проблема, с которой я столкнулся, это то, что она выглядит дорогой .
Представьте, что у вас есть даже события на год и повторная подача заявок в зависимости от того, сколько поправок было сделано.
Скажем, у вас есть 365 событий (1 событие в день в течение 1 года), и у вас есть поправка от 2 января для обновления стоимости акций с 19 до 199 ... вам нужно сделать 365 + 364 события.
Вопрос:
- Правильно ли предложенное мной решение?
- Стоит ли беспокоиться о производительности решения?
- Может ли быть разумный способ обойти это?
Есть похожий вопрос к этому ( ссылка ), но он не ответил на мои вопросы