модуль 2 из 4 · Акт IV · ~30 мин · 7 решений

сцена

Вторник. Лера приносит макет: на экране заказа — живая точка курьера, ползёт к дому покупателя. Красиво.

Лера
Лера

Покупатели каждую минуту жмут F5, лишь бы понять, где их сыр. Хочу показывать курьера вживую — как такси.

Тимур
Тимур

«Вживую» — это как часто? Раз в секунду? У нас в пик десятки тысяч открытых заказов. Если приложение каждого покупателя начнёт спрашивать базу «где мой курьер?» раз в секунду — это десятки тысяч запросов в секунду по той самой базе, которую мы всю чёрную пятницу спасали.

Гена
Гена

А ночной пересчёт? Мы же научились гонять батчи.

Иван
Иван

Батч отвечает раз в ночь. А карта должна дышать в реальном времени — это совсем другой масштаб времени. Пока ночной конвейер всё посчитает, курьер уже доедет и уедет. Тут нельзя пересчитывать состояние целиком — надо ловить каждое событие в ту секунду, когда оно случилось.

Иван рисует на доске не таблицу, а стрелку времени, по которой одно за другим бегут события: «курьер сдвинулся», «курьер сдвинулся», «курьер у подъезда».

как НЕ надо · опрос базы тысячами клиентов
SELECT раз/сек ×тысячи3000 приложений«где мой курьер?»база заказови так горячаядесятки тысяч чтений в секунду

Каждый клиент спрашивает «что нового?» снова и снова — даже когда нового нет.

← карта