Раздел 26 · Data Engineering

Реальное время: где задержка решает

junior~15 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

В прошлом уроке мы поставили общий лог между сервисами «Гонца». Теперь события о заказах доходят до всех, кому нужны. Остался вопрос, с которого начинался блок: как быстро они должны доходить. Отто говорит «в реальном времени», но за этими словами у разных задач очень разные цифры.

Молоко и консервы

Открой холодильник. Молоко годно неделю, консервы год, а свежий хлеб к вечеру уже не тот. Никто не покупает консервы каждый час и не запасает молоко на год. У каждого продукта свой срок годности, и под него подстраивают, как часто ходить в магазин.

У результата обработки данных тоже есть срок годности. Позиция курьера на карте прокисает через десять секунд: машина уехала, а точка стоит на месте. Отчёт за неделю не испортится и за сутки.

Бюджет задержки

Время, за которое результат должен появиться, пока он ещё нужен, называют бюджетом задержки. В «Гонце» он такой:

ЗадачаБюджетЧто будет, если опоздать
антифрод: странная оплата2 сденьги уже ушли мошеннику
курьер на карте у клиента10 сточка отстаёт от машины, клиент звонит в поддержку
диспетчер видит свободных курьеров30 сзаказ ждёт курьера, которого диспетчер не видит
уведомление «курьер подъезжает»1 минклиент не успевает спуститься
отчёт Отто за неделюсуткиничего: его читают в понедельник утром
счета ресторанам за месяцсуткиничего: их выставляют раз в месяц

Цифры условные, но порядок честный: от секунд до суток. Бюджет задачи определяет бизнес, а не программист. Его выясняют вопросом «когда этот результат станет бесполезным?».

Посмотри сам

Двигай ползунок задержки, с которой данные доходят до обработчика. Задача успевает, если задержка не больше её бюджета.

При выгрузке раз в час из первого урока успевают только две задачи из шести: отчёт и счета. Минута спасает ещё уведомление, тридцать секунд диспетчера. А антифроду не хватает даже пяти секунд: ему нужна задержка в одну-две секунды.

урок из курса

Урок из курса «Data Engineering». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.