Перейти к содержанию

Ключевые решения

ADR-001: один package, три роли

Статус: принято.

Решение: процессы разделены командами запуска, а не repositories/packages. Причина — общий домен и небольшой MVP.

ADR-002: NATS JetStream между crawler и indexer

Статус: принято.

Решение: событие нужно сохранять при остановленном indexer и повторно доставлять без ACK. Core NATS для этого недостаточен.

ADR-003: PostgreSQL fixed-window limiter

Статус: принято.

Решение: Redis удалён как второй state store ради одного счётчика. Атомарность обеспечивается SELECT FOR UPDATE.

Статус: принято.

Решение: на малом корпусе approximate index не нужен. Точка пересмотра — измеренный p95 или рост корпуса, а не беспокойство диаграммы.

ADR-005: fake AI является полноценным режимом

Статус: принято.

Решение: fixture demo и CI должны работать без GPU, сети и model downloads. Live provider сохраняет тот же protocol.

ADR-006: статический UI

Статус: принято.

Решение: одна форма Search/Ask не оправдывает Angular/React. UI остаётся доступным, адаптивным и тестируемым статически.