Skip to main content

Що означає «event sourcing»?

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

Суть

Кожна зміна даних записується як подія:

«Створено замовлення», «Додано товар», «Оплату отримано».

Щоб отримати поточний стан, система просто відтворює всі події по порядку. Таким чином, база даних стає журналом історії, а не знімком поточного стану.

Приклад

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

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

Event Sourcing зберігає:

javascript
1. OrderCreated 2. ItemAdded 3. PaymentReceived

З цих подій можна в будь-який момент перерахувати поточний стан замовлення.

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

  • Повна історія змін - зручно для аудиту й аналітики.
  • Легкий відкат і відтворення стану.
  • Природна інтеграція з подієвою архітектурою (EDA).
  • Гнучкість - можна перерахувати дані, якщо змінилися бізнес-правила.

Мінуси

  • Ускладнює зберігання і читання даних (потрібні «проєкції» для швидких запитів).
  • Складніше реалізувати транзакційну цілісність.

Підсумок:

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

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

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

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