Що означає «event sourcing»?
Event Sourcing - це архітектурний підхід, за якого система не зберігає поточний стан об'єкта напряму, а зберігає всі події, які до нього призвели.
Суть
Кожна зміна даних записується як подія:
«Створено замовлення», «Додано товар», «Оплату отримано».
Щоб отримати поточний стан, система просто відтворює всі події по порядку. Таким чином, база даних стає журналом історії, а не знімком поточного стану.
Приклад
Звичайний підхід зберігає:
javascript
Order: {id: 1, status: "paid"}Event Sourcing зберігає:
javascript
1. OrderCreated
2. ItemAdded
3. PaymentReceivedЗ цих подій можна в будь-який момент перерахувати поточний стан замовлення.
Навіщо це потрібно
- Повна історія змін - зручно для аудиту й аналітики.
- Легкий відкат і відтворення стану.
- Природна інтеграція з подієвою архітектурою (EDA).
- Гнучкість - можна перерахувати дані, якщо змінилися бізнес-правила.
Мінуси
- Ускладнює зберігання і читання даних (потрібні «проєкції» для швидких запитів).
- Складніше реалізувати транзакційну цілісність.
Підсумок:
Event Sourcing - це спосіб зберігати не результат, а історію подій, що дозволяє точно відновити минуле і гнучко керувати станом системи.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.