Что такое Event Sourcing
Python
Middle
Без компании
Что такое Event Sourcing
Ответы
Event Sourcing — это архитектурный подход, при котором состояние приложения определяется последовательностью событий (events), а не текущим состоянием данных. Вместо обновления записи в БД, каждое изменение сохраняется как отдельное событие.
**Ключевые особенности:**
- Состояние восстанавливается путём применения всех событий
- События неизменяемы (append-only)
- Позволяет реализовать временные точки (time travel)
**Пример:**
```
class Account:
def __init__(self):
self.balance = 0
self.events = []
def deposit(self, amount):
self.events.append(("deposited", amount))
self.balance += amount
def withdraw(self, amount):
if self.balance >= amount:
self.events.append(("withdrawn", amount))
self.balance -= amount
```
**Преимущества:**
✔ Аудит изменений
✔ Воспроизведение состояния на любую дату
✔ Гибкость в обработке данных
**Недостатки:**
✖ Сложность реализации
✖ Нагрузка на хранение событий
✖ Необходимость компенсирующих событий для ошибок