теория

Поток вместо опроса

Смотри, вся разница — в том, кто кого беспокоит. Опрос (polling) — это когда потребитель снова и снова дёргает источник: «ну что, новое есть? а сейчас? а сейчас?». Поток переворачивает роли: источник сам толкает событие тому, кто подписан, ровно тогда, когда оно случилось. Меньше пустых вопросов, меньше задержки.

Между продюсером и потребителем обычно ставят — посредника, который развязывает их во времени: потребитель может на секунду отвалиться, а сообщение его дождётся. Брокеры бывают двух пород.

Обычная очередь (AMQP/JMS): доставил сообщение — удалил. Просто, но история не хранится: отвалился надолго — пропустил навсегда, а новый потребитель прошлого уже не увидит.

Лог-брокер (вроде Kafka): события дописываются в конец бесконечной ленты и НЕ стираются после прочтения. Отсюда суперсила — реплей: новый потребитель может перечитать историю с начала и собрать из неё своё представление, а упавший — продолжить с того места, где остановился. Помнишь журнал упреждающей записи из модуля про хранение? Здесь та же идея, только журнал стал первичным каналом, а не страховкой.

А как связать поток с базой, где данные уже лежат? Через : каждое изменение в базе превращается в событие в логе. Дальше из этого лога строят — заранее посчитанные срезы (позиции курьеров на карте, лента заказов продавца), которые обновляются сами по мере событий. Никто не пересчитывает всё целиком — представление просто едет следом за потоком.

← назад