digital-garden/dev/architecture/Event Sourcing.md
Struchkov Mark 701b685334
All checks were successful
continuous-integration/drone/push Build is passing
Обновление
2024-12-03 22:19:18 +03:00

4.1 KiB
Raw Blame History

aliases tags date
maturity/🌱
2024-12-02

Event Sourcing — это архитектурный паттерн, при котором состояние системы не сохраняется напрямую, а восстанавливается путем воспроизведения последовательности событий. Каждое событие отражает изменение в системе и сохраняется в неизменяемом журнале событий (event log).

Принципы:

  • Неизменяемость событий. Каждое событие записывается единожды и не подлежит изменению.
  • Воспроизведение событий. Текущее состояние объекта вычисляется путем последовательного применения событий, начиная с исходного состояния.
  • Хранилище событий. Все события хранятся в базе данных, которая может быть оптимизирована для их последовательной записи.

Преимущества:

  • Аудит и прозрачность. Хранилище событий предоставляет полный лог изменений, что упрощает аудит и диагностику.
  • Производительность и масштабирование. Увеличение производительности за счет использования хранилища событий и построения проекций для чтения.
  • Восстановление состояния. Легкость восстановления системы после сбоя путем проигрывания всех событий.
  • Возможности для анализа. Хранилище событий может использоваться для ретроспективного анализа данных.

Ограничения:

  • Усложнение системы. Требуется дополнительная логика для обработки событий, создания проекций и управления хранилищем событий.
  • Версионирование событий. Необходимость в управлении версиями событий при изменении их структуры.
  • Увеличение объема данных. Хранение всех событий может привести к быстрому росту объема данных.
  • Задержка восстановления состояния. При большом числе событий восстановление состояния может занимать много времени.

Применение:

  1. Финансовые системы. Для учета транзакций и обеспечения полного логирования операций.
  2. E-commerce. Хранение всех изменений корзины пользователя или заказов.
  3. IoT. Сохранение событий от датчиков для анализа в реальном времени или ретроспективы.
  4. Паттерн ../../../../knowledge/dev/архитектура/паттерн/CQRS. Часто используется совместно с Event Sourcing для разделения операций чтения и записи.

Мета информация

Область:: ../../meta/zero/00 Архитектура ИС Родитель:: Архитектурный паттерн Источник:: Создана:: 2024-12-02 Автор::

Дополнительные материалы

Дочерние заметки