Привет, фартаны
Такая ситуация:
- у нас есть несколько проходок на подлодку
- но материал, с которым мы будем выступать, ещё не готов
Поможем друг другу! Иначе говоря, вот конкурс:
Подразумевая классический стек без темпорала (очередь, крон, БД, микросервисы на пыхе), накидайте флоу заказа такси. Пример на картинке 👆 Т.е. в виде схемы с каким-то описанием последовательности.
Не нужно сильно упарываться, т.е. писать код и слишком углубляться в детали.
Можно ошибаться (за это никаких санкций). Нужно просто показать самодостаточное архитектурное решение, которое не будет вызывать много вопросов.
Победителей может быть от 0 до 6. Если все проходки не раздадим, то оставшиеся разыграем (если звёздочек хватит).
Срок — неделя.
ТЗ примерно такое (крайние случаи можно додумывать):
На вход мы получаем DTO с клиентом, маршрутом поездки, ценой и фильтром (тариф, предпочтения... не важно).На
Этап 1: резервируем бабки на карте клиента. Если денег нет, то отменяем заказ.
Этап 2: подбор и прибытие водителя. Если за 5 минут водитель не нашёлся, то заказ отменяем.
Все свободные и подходящие по фильтру водители поблизости получают предложение выполнить заказ. Они могу заказ принять или не принять. Первый, кто принял, становится водителем.
Заказ может быть отменён клиентом, тогда размораживаем деньги. Или водитель может соскочить, ссылаясь на невозможность выполнить заказ, тогда водитель ищется заново в новые 5 минут.
Этап 3: поездка. Просто ждём, когда завершится. Если за час не было поступления информации о поездке (статус не изменился, от водителя не приходили GPS координаты), то уведомляем оператора -- пусть разбирается, что случилось.
Если поездка завершилась, то списываем бабки.
Свои варианты можете оставлять в комментариях. А если вы работаете в Яндекс.Такси или там Максиме и не хотите палиться, то можете сливать внутренние флоу в ЛС