Одна база данных на всё: доводы против Redis, Mongo и Pinecone
Новый сайт каталогизирует замену на Postgres почти для каждой специализированной системы данных, от Redis до Neo4j, и называет обращение к ним преждевременной оптимизацией.
Каталог конкретен: UNLOGGED-таблицы вместо Redis, SKIP LOCKED вместо очереди задач, pgvector вместо Pinecone, PostGIS вместо вашего гео-стека — с правилом, что покинуть Postgres можно только после того, как задокументируешь, почему его не хватило.
Разработчик, у которого email-CRM работает на Redis, не покупается на посылку: его тривиально настроить, и он никогда не падает, так о какой сложности вообще говорит этот жанр?
Postgres для кэша, очереди, векторного хранилища и графа
Аргумент прямой: большинство команд тянутся ко второй базе, поисковому кластеру и векторному хранилищу ещё до того, как первая база прогрелась, и всё это преждевременная оптимизация. Сначала выжмите PostgreSQL до предела, а потом платите за что-то специализированное, только если он и правда не тянет. Сайт читается как прямой потомок Choose Boring Technology (2018).
Что заставляет это сработать — карта замен. Почти для каждой специализированной системы сайт называет возможность или расширение Postgres, которое покрывает ту же территорию:
| Специализированный инструмент | Замена на Postgres |
|---|---|
| Redis (кэширование) | UNLOGGED-таблицы, материализованные представления |
| Очередь задач | SKIP LOCKED, pgmq, pgflow |
| Elasticsearch / Algolia | tsvector, pg_trgm, ParadeDB |
| MongoDB | JSONB, FerretDB |
| Pinecone / Weaviate | pgvector, pgvectorscale |
| Временные ряды | TimescaleDB, pg_partman |
| Snowflake / BigQuery | pg_analytics, DuckDB |
| Neo4j | Apache AGE, рекурсивные CTE |
| Геоданные | PostGIS |
Планка ухода намеренно высока: выжать Postgres до предела, задокументировать, почему его не хватило, и принять операционные издержки того, что придёт на замену.
Возразили те, кто реально эксплуатирует всё остальное
Разработчик, строящий email-CRM в carom.io, не покупается на посылку:
«Но я читаю (растущий) жанр статей «используй Postgres для всего», и они подразумевают сложность эксплуатации другого софта, которой я просто не вижу. Я про Redis в частности… его тривиально настроить, и он почти никогда не падает и не требует обслуживания.»
Один комментатор не впечатлился самим слоганом:
«В последнее время я видел несколько постов «Используй Postgres для всего!»… когда я вижу что-то вроде «Всё, что тебе нужно, — это X», я немного закатываю глаза, потому что [идеи «не добавляй зависимостей» и «предпочитай простоту»] имеют очень мало общего с postgres.»
Читатель, ссылающийся на эпизод Oxide and Friends и разбор brandur об очередях в Postgres указал на площадку:
«Учитывая единодушный консенсус на HN, что Postgres — это всё, что вам когда-либо понадобится… Онлайн-форумы вроде Hacker News могут быть слегка эхо-камерными.»
Ещё один голос взял собственный совет статьи про резервные копии и обернул его против неё:
«Причина держать отдельные системы в том, что некоторые из них падают. И под «падают» подразумевается в том числе то, что вы хотите развернуть новую версию. Или восстановиться из резервной копии, как советовала статья.»
Неудобное следствие: одна база данных — это один радиус поражения.
Получайте такие разборы каждый день
Главные истории Hacker News — на email, в Telegram или RSS.
ЕС заставляет Nintendo сделать батареи Switch 2 сменными самим пользователем
У новости о соответствии требованиям есть тихий близнец, зарытый в том же FAQ поддержки: после почти десяти лет продаж Nintendo снимает с производства оригинальный Switch, Switch Lite и Switch OLED.