Сервис заказа поездок наподобие Uber
Стартап хочет стать новым Uber; вы — технический директор подрядчика, делающего backend (frontend не рассматриваем, но важно продумать постоянное обновление координат водителя/клиента на карте и доставку этих обновлений).
Функциональные требования: пассажир видит доступных водителей рядом; заказывает поездку из A в B; ближайшие свободные водители получают уведомление о заказе и принимают или пропускают его (принять может только один); пассажир видит примерную длительность и прогресс поездки (трек) на карте.
Дополнительные вводные (по запросу): старт — 80 тыс. поездок в день, цель — 800 тыс.; пользователь в среднем заказывает 1 поездку в день; историю поездок храним как записанные треки; трек отправляется каждые 8 секунд с устройств пассажира и водителя (средняя поездка 12 минут, в час пик — до 35 минут); система должна независимо работать в разных странах (упал ДЦ в одной — в другой продолжают заказывать); трек должен корректно считаться (усреднением), если водитель часть пути ехал без интернета.
Порядок, которого ждут: уточни требования → оцени нагрузку → API и данные → схема компонентов → узкие места и отказ. Не прыгай сразу в Kafka.