| Главные Плюсы | Главные Сложности |
|---|---|
| Полный аудит: Идеально для банков и финтеха. Никакие данные не перезаписываются, история 100% достоверна. | Долгий Replay: Если у пользователя миллион транзакций, вычислять баланс «на лету» слишком долго. Нужны снапшоты (Snapshots). |
| Машина времени: Можно легко восстановить состояние системы на любую секунду в прошлом. | Эволюция схемы (Versioning): Структура данных меняется. Как прочитать событие, записанное 5 лет назад в старом JSON-формате? Это главная боль. |
| Идеально для CQRS: Одна подсистема быстро пишет (Append-only), другая — асинхронно читает и строит проекции для UI. | Сложность мышления: Разработчикам, привыкшим к CRUD, очень тяжело перестроиться на событийное мышление. |
Обязательно к прочтению
Event Sourcing звучит как магия на конференциях, но у этого паттерна много проблем. Если хочешь использовать его в реальном проекте, прочитай два разбора ниже:
- Event Sourcing is Hard. Легендарная статья Криса Кила. Он честно рассказывает, как они внедрили event sourcing и столкнулись с проблемами версионирования и миграции старых событий.
- When Event Sourcing Fails. Истории из продакшена: что происходит, когда размер Event Store улетает в космос и как снапшоты могут выстрелить в ногу.