I replaced my entire stack with Postgres...

I replaced my entire stack with Postgres...

The Coding Gopher· · 4 хв читання · Дивитися на YouTube →

Детальний підсумок відео: «Я замінив весь стек технологій на PostgreSQL»

Автор: The Coding Gopher
Дата: 16 квітня 2026 року


Вступ: Критика сучасної архітектури програм

Автор різко критикує сучасну тенденцію в розробці програмного забезпечення, яку він називає «симулятором управління підписками». На його думку, розробників «збили з пантелику» постачальники хмарних послуг, змушуючи вірити, що навіть простий додаток потребує складної мережі спеціалізованих мікросервісів (наприклад, Redis для кешування, Kafka для фонових завдань, Elasticsearch для пошуку). Це призводить до:

  • Надмірної складності (overengineering) архітектури.
  • Високих витрат на численні підписки SaaS-стартапів.
  • Крихкості системи, яка важко підтримується.

Основна теза: Більшість цих інструментів можна замінити єдиним, перевіреним часом рішенням — PostgreSQL.


Розділ 1: Чому PostgreSQL — універсальна зброя

  • Історія та надійність: PostgreSQL — це об’єктно-реляційна система керування базами даних з відкритим кодом, яка розвивається понад 30 років. Вона забезпечує ACID-сумісність, що гарантує цілісність даних навіть при збоях сервера.
  • Розширюваність: Ключова перевага — підтримка розширень (extensions), що дозволяє адаптувати PostgreSQL під різні задачі (наприклад, робота з JSON, векторами, геоданими). Автор порівнює її з грою «Skyrim», де база даних є стабільним фундаментом, який можна «модифікувати».

Розділ 2: Заміна специфічних інструментів за допомогою PostgreSQL

1. Заміна NoSQL (наприклад, MongoDB)

  • JSONB тип даних: PostgreSQL нативно підтримує JSON у бінарному форматі (JSONB), що дозволяє ефективно зберігати та запитувати неструктуровані дані.
  • Інвертовані індекси (GIN): Дозволяють швидко знаходити властивості у вкладених JSON-об’єктах без сканування всіх рядків.
  • Перевага: Поєднання гнучкості NoSQL із цілісністю реляційних даних.

2. Заміна черг завдань (наприклад, RabbitMQ, Redis)

  • Конкурентний контроль: Використання речення FOR UPDATE SKIP LOCKED дозволяє створювати високопродуктивні черги без блокувань. Роботи можуть брати завдання з таблиці, уникаючи конфліктів.
  • Результат: Таблиця PostgreSQL стає ефективною системою черг, здатною обробляти тисячі завдань на секунду.

3. Заміна систем пошуку (наприклад, Elasticsearch)

  • Повнотекстовий пошук: Вбудовані функції TSVECTOR та TSQUERY дозволяють аналізувати текст (видаляючи стоп-слова, застосовуючи основи слів).
  • Нечіткий пошук: Розширення pg_trgm використовує триграми для пошуку навіть при опечатках (наприклад, «Postgrql» → «PostgreSQL»).
  • Висновок: Для більшості додатків спеціалізований пошуковий рушій є надлишковим.

4. Заміна векторних баз даних (наприклад, Pinecone)

  • Розширення pgvector: Дозволяє зберігати вектори поряд із реляційними даними, уникаючи проблеми «гібридного пошуку» (коли потрібно поєднувати запити до різних баз).
  • Алгоритм HNSW: Організує вектори у багаторівневу графову структуру для швидкого пошуку найближчих сусідів.
  • Перевага: Можливість виконувати семантичний пошук із фільтрацією за реляційними критеріями в одній транзакції.

5. Геопросторові дані (заміна GIS-систем)

  • Розширення PostGIS: Перетворює PostgreSQL на потужний географічний інструмент.
  • Індекс GIST: Використовує «обмежувальні прямокутники» для швидкого відсіювання непотрібних даних перед точними обчисленнями, що часто ефективніше спеціалізованих рішень.

6. Робота з часовими рядами

  • Партиціонування та індекс BRIN: Розділення даних на щоденні/щомісячні частини та індекс, що зберігає лише мінімальні/максимальні значення в блоках даних, дозволяє ефективно працювати з мільярдами записів (наприклад, логи).

7. Аналітика та дашборди

  • Матеріалізовані вигляди (Materialized Views): Зберігають результати складних агрегацій на диску. Команда REFRESH MATERIALIZED VIEW CONCURRENTLY оновлює дані у фоновому режимі без блокувань.
  • Перевага: Можна уникнути використання дорогих хмарних сховищ даних (наприклад, Snowflake).

8. Заміна backend-серверів

  • Генерація API: Інструменти на кшталт PostgREST або PG GraphQL автоматично створюють REST/GraphQL API на основі схеми бази даних.
  • Безпека: Політики на рівні рядків (Row-Level Security) гарантують, що користувачі мають доступ лише до своїх даних на основі токенів аутентифікації.
  • Результат: База даних стає повноцінним backend, усуваючи потребу в додаткових серверах.

Розділ 3: Спонсор — Neon

Автор рекомендує Neon як платформу для спрощення роботи з PostgreSQL:

  • Архітектура: Розділення обчислень та сховища дозволяє масштабуватися та економити.
  • Гілкування баз даних: Можливість створювати копії бази даних для тестування (аналогічно Git).
  • Serverless-підхід: Автоматичне масштабування та оплата за фактичне використання.

Розділ 4: Обмеження PostgreSQL

Автор зазначає, що PostgreSQL — не «срібна куля»:

  • Вертикальне масштабування: PostgreSQL чудово масштабується на потужному залізі, але горизонтальне масштабування (шардування) є складним.
  • Спеціалізовані задачі: Для екстремальних навантажень (мільйони подій за секунду або субмілісекундне кешування) потрібні спеціалізовані інструменти (наприклад, Redis для кешування).

Висновок автора: Доки додаток не досяг масштабів великих корпорацій, використання PostgreSQL для більшості задач є найрозумнішим і найекономічнішим рішенням.


Додаткові ресурси від автора

  1. Code Crafters: Платформа для навчання через створення реальних інструментів (наприклад, Redis, Git, Docker). Пропонується знижка 40%.
  2. Безкоштовна розсилка: Ексклюзивні матеріали про системний дизайн і backend-розробку.

Ключові висновки

  • Перевантаженість стеку сучасними інструментами часто є непотрібною та дорогою.
  • PostgreSQL через свою розширюваність може замінити більшість спеціалізованих сервісів (від черг до векторного пошуку).
  • Неон спрощує управління PostgreSQL у хмарі.
  • Важливо оцінювати реальні потреби проекту, уникаючи overengineering, але використовувати спеціалізовані рішення для екстремальних випадків.

Автор закликає розробників «будувати складні речі» для глибшого розуміння технологій, а не покладатися на готові SaaS-рішення без критичного мислення.

Сподобався цей підсумок? Кинь будь-яке YouTube-відео нашому боту — отримай свій підсумок за 30 секунд.
Спробувати YTSummarAI

Не маєш 2 години на подкаст?

Кинь YouTube-лінк боту в Telegram — отримай ключові ідеї за 30 секунд. 9 зірок безкоштовно при старті.

Спробувати YTSummarAI