❓ Разделение чтения и записи: Event Sourcing
Наиболее мощный и сложный способ разделения чтения и записи.
Основная идея:
Состояние системы не хранится, а восстанавливается из последовательности событий (Event Sourcing). Команды генерируют события, которые затем обрабатываются "проекциями" для обновления хранилищ чтения.
Как работает:
1️⃣ Command Side: При получении команды создается событие и сохраняется в журнале событий (Event Store).
2️⃣ Event Store (Журнал событий): Это единственный источник истины. Хранит неизменяемую последовательность событий.
3️⃣ Projections (Проекции): Это фоновые процессы, которые слушают события из Event Store. Их задача — обновлять хранилища для чтения на основе этих событий.
4️⃣ Query Side: Запросы выполняются из оптимизированных хранилищ, которые были заполнены проекциями.
P.S. Кто пропустил пост про CQRS, он тут.
Системный анализ | Дмитрий Помаскин
Post #198
628