25. SRP на уровне метода !
Принятие решения о
возможности перехода
состояния
(бизнес-правила)
Переход состояния
(транзитор)
Собственно,
изменение состояния
(аппликатор)
26. И как это работает?
Ну и как это всё работает?
41. Оптимизация операции восстановления
состояния при помощи «снимков»
Аггрегат с очень
длинным
жизненным
циклом и кучей
ивентов
E1
E2
…
E100500
Snapshot
[rev: E100500]
E100501
restore
replay the rest
of events
51. Обработка событий (PULL)
Event Store View Model
Get undispatched events
Commit
E1
E2
ID : UUID
Dispatched : bool
mark as
dispatched
52. Обработка событий (PUSH)
Event Store View Model
publish (commit)
Commit
E1
E2
ID : UUID
Dispatched : bool
Идемпотентность во
View Model хранилище
по-прежнему нужна
mark as
dispatched