← Назад к блогу
PHP 20.07.2025·2 мин чтения

Laravel + Event Sourcing: когда это оправдано

Как понять, нужен ли event sourcing в Laravel, и как не превратить проект в избыточно сложную систему.

Event sourcing даёт мощный контроль истории доменных изменений, но требует зрелой дисциплины модели.

Проще говоря

Как понять, нужен ли event sourcing в Laravel, и как не превратить проект в избыточно сложную систему. Ниже — что именно делать на практике и где чаще всего ошибаются.

Где оправдано

  • сложные доменные процессы,
  • высокий риск конфликтов состояния,
  • важна реконструкция истории и аудит.

Где избыточно

  • CRUD-heavy продукт без сложной доменной логики,
  • маленькая команда без опыта работы с событиями.

Как это сработало на практике

Коротко про вводные.

Контекст: В модуле биллинга переход на event stream + projections помог убрать «необъяснимые» расхождения статусов и упростил расследование спорных операций.

Короткая история из команды

В биллинговом модуле статусы регулярно «не сходились»: в UI одно, в отчётах другое. Пока хранили только текущее состояние, разбор инцидента занимал часы. Когда начали писать последовательность событий, расследования стали короче и исчезли споры «кто и когда изменил сущность». Именно эта прозрачность и стала главным аргументом в пользу event sourcing.

Вывод

Для Laravel event sourcing полезен точечно — там, где цена ошибки состояния выше цены архитектурной сложности.

Признак, что event sourcing действительно нужен

Если команда регулярно отвечает на вопрос “почему сущность в таком состоянии” и не может восстановить последовательность действий, event sourcing может дать реальную ценность.

Но для простых CRUD-сценариев лучше держать модель проще и не платить лишнюю цену сложности.

Термины простыми словами

  • Event Sourcing — способ хранить не только текущее состояние, а последовательность событий, из которых это состояние собирается.

Этот блок нужен, чтобы статью можно было читать без предварительного контекста по всем терминам.

Где обычно возникает сухая теория вместо результата

Частая ошибка — обсуждать паттерны отдельно от метрик и бизнес-эффекта. В итоге команда знает правильные слова, но не видит, что реально улучшилось после изменений.

Чтобы не застрять в теории, привязывай каждую правку к наблюдаемому эффекту: меньше багов на статусах, меньше SQL-регрессий, быстрее релизный цикл, меньше hotfix после деплоя.