Skip to main content

Що таке event sourcing?

Event sourcing - це підхід до зберігання даних, за якого система зберігає не поточний стан об'єкта, а послідовність усіх подій, які до цього стану призвели.

Суть

Замість звичної моделі «перезаписати дані», система записує кожну зміну як подію:

«Замовлення створено», «Додано товар», «Замовлення оплачено».

Поточний стан можна отримати, відтворивши всі події по порядку.

Приклад

Звичайна база зберігає:

javascript
Order: {id: 1, status: "paid"}

В event sourcing зберігаються події:

javascript
1. OrderCreated 2. ItemAdded 3. PaymentReceived

А стан «paid» обчислюється за потреби.

Навіщо це потрібно

  1. Повна історія змін - можна точно відновити, що і коли сталося.
  2. Аудит і трасування - підходить для фінансових, логістичних і правових систем.
  3. Легко реагувати на події - інші сервіси можуть підписуватися на них.
  4. Відкладені обчислення - можна перерахувати стан за зміни логіки.

Недоліки

  • Складніше реалізувати - потрібен реплей подій і проєкції стану.
  • Дані ростуть швидше.
  • Не завжди зручно для простих CRUD-застосунків.

Підсумок:

Event sourcing зберігає історію змін, а не результат. Це робить систему прозорою, відтворюваною і зручною для подієвої архітектури, але вимагає продуманого керування потоком подій і сховищем.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.