PostgreSQL vs MongoDB для SaaS: модель данных и эксплуатация
PostgreSQL или MongoDB для SaaS: транзакции, tenancy, аналитика и стоимость владения.
11 июля 2026 · 5 мин чтения · Александр Меретти
Введение. Для большинства B2B SaaS PostgreSQL остаётся default: ACID, отчёты и зрелые паттерны tenancy. Материал для product- и engineering-лидеров, которые принимают решения на горизонте 12–24 месяцев, а не гонятся за хайпом в презентации.
Когда спор Postgres vs Mongo возникает
Большинство срывов в теме «PostgreSQL vs MongoDB для SaaS» начинается не с кода, а с размытого scope: маркетинг обещает одно, продажи фиксируют другое, а ИТ закрывает техдолг третьим приоритетом. В итоге бюджет уходит в интеграции «на скотч» и ручные сверки в Excel. Мы видим это в проектах, где не описаны границы MVP, нет владельца метрик и не зафиксированы SLA на данные между системами.
Команда теряет 20–40% спринтов на переделки, потому что не согласовала критерии готовности: что считается лидом, какая атрибуция в CRM, какой latency API допустим для витрины. Без этих договорённостей любая архитектура — лотерея.
Модель данных и запросы
Опорный принцип: сначала поток ценности, потом стек. Нарисуйте journey от первого касания до оплаты и поддержки, отметьте ручные шаги и точки отказа. Только после этого выбирайте PostgreSQL и модель данных. Для PostgreSQL vs MongoDB для SaaS мы обычно рекомендуем row-level security / schema-per-tenant vs document model + aggregation pipelines: она даёт предсказуемый TCO и не блокирует масштабирование команды.
Зафиксируйте ADR по ключевым решениям: хранилище, очереди, авторизация, наблюдаемость. Включите в Definition of Done контрактные тесты API, схему событий и политику миграций. SaaS имеет смысл заказывать только когда есть согласованный backlog с приоритетами P0/P1 и измеримые KPI на квартал.
Наблюдаемость — не «логи на сервере», а корреляция user_id → trace_id → заказ. Без этого невозможно честно считать ROI и оптимизировать воронку. Добавьте дашборды для продуктовых и инженерных метрик в одном timezone и с единым справочником статусов.
Эксплуатация и бэкапы
Кейс A (billing SaaS). Клиент пришёл с болью: сложные отчёты по подпискам. Мы разбили релиз на три волны: стабилизация данных, автоматизация рутины, персонализация. Через 14 недель SQL + dbt оказались проще, чем Mongo aggregations. Критично было не «переписать всё», а остановить утечку лидов на стыке каналов.
Кейс B (контент-платформа). Другая ситуация: гибкая схема карточек. Здесь сработала обратная стратегия — сначала интеграция с CRM и нормализация справочников, затем редизайн витрины. Итог: Mongo + валидация схемы на приложении ускорили итерации.
Масштаб и стоимость
- Выбор технологии до описания доменных границ.
- Отсутствие каталога событий аналитики — спор о цифрах вместо роста.
- «Временный» монолит без модульных контрактов, который нельзя резать на сервисы.
- Игнорирование non-functional requirements: RPO/RTO, лимиты PII, требования 152-ФЗ.
- Параллельный редизайн и миграция данных без feature flags.
Как выбрать для SaaS
- [ ] Есть единый glossary для бизнеса и разработки
- [ ] KPI привязаны к измеримым событиям в продукте
- [ ] Описаны интеграции и владельцы данных
- [ ] План релизов с rollback и мониторингом
- [ ] Оценён TCO на 3 года, а не только CAPEX первого спринта
- [ ] Согласованы критерии приёмки с заказчиком и поддержкой
Практическая рекомендация
Часто побеждает Postgres + JSONB, а не полный document store. Если нужна внешняя экспертиза — начните с брифа или оценки: так быстрее получить реалистичный план, чем спорить о стеке в вакууме.
- Явный tenant_id везде
- Индексы под реальные запросы
- План миграций и бэкапов
| Критерий | Слабый сигнал | Сильный сигнал |
|---|---|---|
| Отчёты | Postgres | Mongo ETL тяжелее |
| Гибкая схема | JSONB | Mongo |
| Транзакции | Postgres | Multi-doc limited |
Модель данных SaaS
Для multi-tenant SaaS PostgreSQL чаще выигрывает: транзакции, row-level security, JSONB при необходимости, зрелые миграции. MongoDB уместна при гибкой схеме документов, heavy write analytics или когда команда уже сильна в document model — но связи и отчётность усложняются. Критично спроектировать tenant_id везде и индексы под реальные запросы, не под ORM по умолчанию.
Backup, PITR и тест restore — часть Definition of Done для SaaS-разработки. Event sourcing и CQRS не нужны «с первого дня», unless audit trail — core value. Нагрузочное тестирование на 10× ожидаемого tenant count дешевле, чем экстренный sharding через полгода.
Планируйте миграции схемы с zero-downtime: expand-contract, backfill jobs, мониторинг lock. Для analytics-heavy нагрузок — read replica или OLAP вынесите отдельно, не грузите primary. Шифрование at rest и in transit — baseline для B2B SaaS. Документируйте data retention и удаление по запросу субъекта. Backend-разработка должна включать runbook на restore из backup.
Зафиксируйте лимиты connection pool и max query time в production — типичный источник «медленного SaaS» без видимых ошибок.
Частые вопросы
Postgres или Mongo для SaaS?
По умолчанию Postgres: связи, отчёты, транзакции. Mongo — документные сценарии.
Модель доступа важнее логотипа.
См. PostgreSQL, MongoDB.
Можно ли оба?
Да, polyglot. Цена сложности.
Не без причины.
Master для биллинга — обычно SQL.
JSONB vs Mongo документ?
JSONB закрывает гибкость часто. Индексы и связи — сила Postgres.
Статья сравнивает.
Не храните всё в одном JSON.
Миграция Mongo→Postgres?
Осознанно и дорого. Когда отчёты/связи болят.
Пилот домена.
Двойная запись.
Спроектируете схему?
Нужна архитектура
под ваш KPI?
Опишите контекст в брифе — вернёмся с планом, оценкой и рисками в течение рабочего дня.