Маркетплейс 500K SKU: Elasticsearch, очереди, мультивендор

Replatforming маркетплейса: поиск быстрее 300 мс, 500K SKU, кабинеты продавцов и split-оплата.

Стек Elasticsearch, NestJS, Next.js, RabbitMQ, React

Клиент — маркетплейс DIY-товаров (мультивендор, 500K SKU, 800 продавцов). Монолит на Bitrix уперся в потолок: поиск > 3 сек, индексация каталога — ночной batch 8 часов, падения в распродажи. Нужна replatforming без остановки продаж.

Задача: новый backend + frontend — Elasticsearch, асинхронная индексация, личные кабинеты продавцов, комиссии, split payments. SLA поиска < 300 ms, uptime 99.9%.

  • catalog service: PostgreSQL master, ES cluster (3 node), incremental sync через RabbitMQ;
  • search: facets, autocomplete, synonym dictionary, boost rules;
  • vendor cabinet: импорт CSV/API, модерация карточек, остатки, заказы, выплаты;
  • order orchestration: saga pattern — резерв → оплата → split → fulfillment;
  • checkout: ЮKassa split, промокоды, доставка (CDEK API);
  • admin: antifraud rules, commission engine, dispute workflow;
  • k6 load test: 2K RPS search, Black Friday simulation.

Стек: React, Next.js, Node.js/NestJS, PostgreSQL, Elasticsearch, RabbitMQ, Redis, Docker, K8s. Приёмка: search p95 < 250 ms, 0 потерянных заказов в migration weekend.

Итог: GMV +45% за год; cart abandonment −22%. NDA: маркетплейс не публикуется.