Построение пулов и очередей задач на базе Postgres - Владислад Сидорин, Postgres Professional
Владислав рассказал о том, что делать, когда по разным причинам не получается использовать Kafka, RabbitMQ и NATS etc. и из инфраструктуры есть только Postgres. Показал разные подходы к этому вопросу. В финале продемонстрировал, что знания полезны даже если у вас есть брокер сообщений или событий. 00:00 — Когда очередь поверх БД лучше, чем Kafka, RabbitMQ или NATS (кейсы on-prem и стартапов) 03:40 — Постановка задачи: FIFO, многопоточность и защита от split-brain 07:10 — Базовая реализация: таблицы, статусы и оптимизация выборки до одного SQL-запроса 10:32 — Обеспечение надежности: heartbeat, экспоненциальные retries и паттерн Watcher 21:11 — Push-модель: механизм LISTEN/NOTIFY в PostgreSQL и опасность бесконтрольного роста коннектов 25:14 — Обзор готовых расширений: PGQ, PgMQ (на Rust) и Postgres Pro Q 29:37 — Паттерн Transactional Outbox: как гарантировать согласованность данных с внешним брокером 34:22 — CDC и логическая репликация: WAL, LSN и риски переполнения диска (disaster-сценарии)
Владислав рассказал о том, что делать, когда по разным причинам не получается использовать Kafka, RabbitMQ и NATS etc. и из инфраструктуры есть только Postgres. Показал разные подходы к этому вопросу. В финале продемонстрировал, что знания полезны даже если у вас есть брокер сообщений или событий. 00:00 — Когда очередь поверх БД лучше, чем Kafka, RabbitMQ или NATS (кейсы on-prem и стартапов) 03:40 — Постановка задачи: FIFO, многопоточность и защита от split-brain 07:10 — Базовая реализация: таблицы, статусы и оптимизация выборки до одного SQL-запроса 10:32 — Обеспечение надежности: heartbeat, экспоненциальные retries и паттерн Watcher 21:11 — Push-модель: механизм LISTEN/NOTIFY в PostgreSQL и опасность бесконтрольного роста коннектов 25:14 — Обзор готовых расширений: PGQ, PgMQ (на Rust) и Postgres Pro Q 29:37 — Паттерн Transactional Outbox: как гарантировать согласованность данных с внешним брокером 34:22 — CDC и логическая репликация: WAL, LSN и риски переполнения диска (disaster-сценарии)
