Запрос фаундера → прод за 3 дня
HubMarket: маркетплейс-синхронизация остатков
Production-кейс founder-driven спринта внутри HubMarket. Реальный заказчик-фаундер запросил фичу синхронизации остатков по трём маркетплейсам (Wildberries, Ozon, Yandex Market). От первого сообщения в Telegram до релиза прошло 3 дня.
Таймлайн
- День 0Запрос фаундера в Telegram, обсуждение требований и формата данных
- День 1Архитектурный набросок, проверка источников данных по 3 маркетплейсам, выбор очередей
- День 2End-to-end пайплайн на одном маркетплейсе, тест на реальных данных
- День 3Расширение на 3 маркетплейса, нагрузочная проверка, релиз в прод
Принятые решения
Playwright вместо официальных API
У части маркетплейсов нужные данные доступны только через UI (или API устаревший / нестабильный). Playwright + stealth даёт стабильный путь с откатом к API там, где он есть.
pg-boss как очередь
Уже используется в HubMarket для других задач. Зачем тащить новый Kafka/RabbitMQ, если существующая инфра справляется.
Хранить дельты, не снимки
Снимки остатков по часу = терабайты данных. Дельты + периодический ребейс позволяют держать всё в Postgres без отдельного DWH.
Результат
- Релиз в прод на 3-й день после запроса
- Покрытие 3 маркетплейсов (Wildberries, Ozon, Yandex Market)
- Цикл «запрос → прод» 3-4 дня стал устойчивым паттерном для HubMarket — featured как 4-я метрика на лендинге
- Кейс подтверждает Hero-обещание «MVP за неделю — стартапам»
Стек
Next.jsHonoPlaywrightpg-bossPostgreSQL