MVP food delivery platform: public web API, closed merchant API, webhook dispatcher with retries, demo restaurant service
MVP платформы «Авито.Кухня» — маркетплейс доставки еды. Go-монолит платформы предоставляет три фасада API (публичный для web-клиента, закрытый для заведений, внутренний для провижининга) и фоновый вебхук-диспетчер, который доставляет заведениям события о заказах с гарантией at-least-once. Демо-сервис заведения — отдельный процесс, интегрирующийся с платформой как реальный ресторан.
/api/v1).X-Api-Key): меню, заказы, смена статусов; сюда же смотрит internal-эндпоинт регистрации.Доставка событий — at-least-once: возможны дубли, поэтому обработчик заведения идемпотентен по orderId+event. Падение вебхук-канала не теряет заказы: они доступны через polling, статусная машина валидируется на платформе. Диспетчер и API пишут в одну БД — согласованность достигается транзакцией заказа и outbox-записи. При росте нагрузки первыми масштабируются public-api (реплики) и диспетчер (шардирование по merchant_id); меню читается чаще, чем пишется — кандидат на кеш.
Введите числа или выберите пресет