Плюсы, Минусы и Реальный опыт

Главные Плюсы Главные Сложности
Полный аудит: Идеально для банков и финтеха. Никакие данные не перезаписываются, история 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 улетает в космос и как снапшоты могут выстрелить в ногу.