Технический долг (core)

🔴 Критическое

  • Синхронная шина событий – все обработчики выполняются в том же процессе, что может замедлить ответ API при большом количестве слушателей. Планируется переход на асинхронную очередь (Redis Streams).
  • Отсутствие rate-limiting – нет защиты от брутфорса и DDoS. Необходимо внедрить (например, через middleware).
  • NotificationHub – тоже синхронный, отправка уведомлений (email, push) происходит в потоке запроса. Для высоких нагрузок нужно выносить в очередь.

🟡 Важное

  • JsonErrorHandler – дублирует логирование, требует рефакторинга (отдельный логгер).
  • JwtValidator – не проверяет nbf (not before) и не поддерживает асимметричные ключи (только HS256).
  • GlobalEventDispatcher – не поддерживает приоритеты слушателей и асинхронность.

🟢 Плановые улучшения

  • Покрыть core-компоненты unit-тестами (сейчас только BaseControllerTest).
  • Документировать все порты (port/) и use case'ы.
  • Внедрить логгер с разными уровнями для каждого модуля (уже частично есть в config/web.php).
  • Добавить метрики (Prometheus) для мониторинга.
  • Перейти на league/container или другой PSR-11 контейнер (Yii2 не поддерживает PSR-11, но можно обернуть).