модуль 2 из 4 · Акт IV · ~30 мин · 7 решений
сцена
Вторник. Лера приносит макет: на экране заказа — живая точка курьера, ползёт к дому покупателя. Красиво.
Покупатели каждую минуту жмут F5, лишь бы понять, где их сыр. Хочу показывать курьера вживую — как такси.
«Вживую» — это как часто? Раз в секунду? У нас в пик десятки тысяч открытых заказов. Если приложение каждого покупателя начнёт спрашивать базу «где мой курьер?» раз в секунду — это десятки тысяч запросов в секунду по той самой базе, которую мы всю чёрную пятницу спасали.
А ночной пересчёт? Мы же научились гонять батчи.
Батч отвечает раз в ночь. А карта должна дышать в реальном времени — это совсем другой масштаб времени. Пока ночной конвейер всё посчитает, курьер уже доедет и уедет. Тут нельзя пересчитывать состояние целиком — надо ловить каждое событие в ту секунду, когда оно случилось.
Иван рисует на доске не таблицу, а стрелку времени, по которой одно за другим бегут события: «курьер сдвинулся», «курьер сдвинулся», «курьер у подъезда».
Каждый клиент спрашивает «что нового?» снова и снова — даже когда нового нет.