ADR-0005: Отказ от MongoDB в пользу PG JSONB + S3
Status: accepted Date: 2026-04-17 Deciders: команда проекта
Контекст
MongoDB рассматривалась для raw payloads и гибких документов. После анализа кейсы разделились на два:
- Иммутабельные raw payloads больших объёмов.
- Flex-схема характеристик товара.
Оба кейса решаются без MongoDB.
Решение
- Raw payloads → S3 / MinIO (immutable object storage, S3 API).
- Flex-схема характеристик → JSONB в PostgreSQL.
- MongoDB не используется.
Последствия
Плюсы
- На один тип БД меньше в операциях.
- Единая модель ACID для операционных данных.
- S3 для payloads — дешевле и правильнее архитектурно.
Минусы
- Меньшая гибкость запросов к raw payloads (в PG JSONB мы бы могли строить GIN-индексы, в S3 — нет). Но для payload’ов query-поверх не нужен — они архивны.
Нейтральные последствия
- Команда не получает опыт Mongo (не является ценностью проекта).
Рассмотренные альтернативы
MongoDB для raw payloads
Дороже, сложнее, не даёт явных преимуществ vs S3.
PG JSONB для raw payloads
Раздувание БД, дорого бэкапить.
Ссылки
- Principles: P2.
- Storage matrix:
../data-storage-decisions.md