# MQ в Go (опционально, не для MVP kodex)

Этот документ сохранён как резервный стандарт на случай добавления брокера сообщений в будущем.

## Текущий статус для kodex

- В MVP `kodex` не использует RabbitMQ как обязательную часть архитектуры.
- Основной поток событий: webhook -> PostgreSQL-журнал событий и outbox -> worker jobs.

## Если MQ будет добавлен позже

- Контракт сообщений фиксируется в `specs/asyncapi/<service-name>.v<major>.yaml`.
- Для live-кластера изменение AsyncAPI-событий проходит staged-путём: новое событие/поле
  добавляется рядом со старым, потребители переводятся без live rolling gap, и только затем старая
  форма удаляется отдельным срезом.
- Идемпотентность consumer'ов обязательна.
- Ретраи и DLQ должны быть явно настроены.
- Доменные use-case'ы зависят от интерфейсов (портов), а не от SDK брокера.
