Что, если PostgreSQL уже является потоковой системой?
На первый взгляд это звучит неверно.
Когда мы говорим о потоковых системах, мы обычно имеем в виду такие системы, как Kafka или Flink — системы, специально разработанные для непрерывной обработки данных.
PostgreSQL, напротив, традиционно рассматривается как классическая база данных, предназначенная для хранения и выполнения запросов.
Однако это различие может быть не столь фундаментальным, как кажется.
Каждое изменение в PostgreSQL записывается в WAL (Write-Ahead Log). WAL обладает тремя ключевыми свойствами:
Именно эти свойства определяют поток. С точки зрения системной архитектуры:
WAL — это не просто журнал. Это поток.
Осознав это, возникает новый вопрос:
Если в PostgreSQL уже есть поток, почему он не ведёт себя как потоковая система?
Различие между PostgreSQL и потоковыми системами заключается не в данных. Оно заключается в вычислениях.
Традиционный PostgreSQL выполняет запросы в пакетной модели:
При каждом изменении данных запрос необходимо выполнять заново. Потоковые системы работают принципиально иначе:
Отсюда ключевой вывод:
Пакетная модель пересчитывает, потоковая — реагирует.
Если WAL — это поток, возникает следующий вопрос:
Может ли SQL работать с потоками?
Ответ — да, но не в его традиционной форме.
Необходимо преобразовать SQL в модель инкрементальных вычислений.
Это называется:
DeltaPlan
DeltaPlan меняет парадигму выполнения:
Каждое обновление становится дельтой. Каждый оператор становится инкрементальным. Это превращает SQL в движок непрерывных вычислений.
На этом этапе можно описать единую модель:
WAL → Logical Decoding → События
↓
DeltaPlan
↓
Потоковое выполнение
↓
Непрерывные результаты
Ключевая идея:
Результат — это уже не статическая таблица, а постоянно обновляемое представление данных.
Это приводит к фундаментальному изменению восприятия PostgreSQL. PostgreSQL — это не просто база данных.
Это система, которая уже содержит:
Чего ей не хватает — это явного моста между ними. Как только этот мост появляется:
PostgreSQL становится потоковой системой.

Domino не вводит новую парадигму. Он делает неявную парадигму явной:
Иными словами:
Domino — это реализация потоковой модели PostgreSQL.
Вернёмся к исходному вопросу. Является ли PostgreSQL уже потоковой системой?
Если WAL — это поток, и SQL может быть инкрементальным, то ответ: Да.
PostgreSQL уже является потоковой системой. Мы просто раньше этого не замечали.
Эпоха ИИ: параллельные запросы — от «быстрого сканирования» к «быстрому вычислению»
Глубокий анализ: В эпоху ИИ базы данных вступают в «эпоху унифицированного хранения» (Часть I)
Глубокий анализ: В эпоху ИИ базы данных вступают в «эпоху унифицированного хранения» (Часть III)
Глубокий анализ: В эпоху ИИ базы данных вступают в «эпоху унифицированного хранения» (Часть II)