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