Электронная коммерция

EDTL-интеграция для The Brand Collector: надежное решение на GO

The Brand Collector — международный реселлер pre-owned люксовых товаров с развитой партнёрской сетью поставщиков. Задача совпадала с кейсом eLADY: принимать крупные CSV-дампы от разных источников, приводить данные к единой таксономии, устранять дубли и отдавать чистый результат в целевые системы. Ключевое отличие — объём каждой поставки превышал 120 000 строк, что требовало особого внимания к производительности и стабильности.

Клиент: The Brand Collector
13 августа 2025 г.
Время чтения: 7 минут
Интеграция магазиновedtlShopify разработка
EDTL-интеграция для The Brand Collector: надежное решение на GO

Что такое eDTL и почему оно здесь критично

Мы использовали конвейер eDTL (Extract → Deduplicate → Transform → Load):

  • Extract — потоковый приём CSV из HTTP/S, SFTP и облачных бакетов, без загрузки файла целиком в память.
  • Deduplicate — удаление жёстких и «мягких» дублей (по SKU/EAN/ID, Brand+Model, близости названий), фиксация причин.
  • Transform — нормализация полей (бренд/материал/размер/валюта), маппинг таксономий «источник → целевая», паттерн-матчинг и расчётные атрибуты.
  • Load — выгрузка в целевую схему (CSV/NDJSON/API), статусы, отчёты и вебхуки.

Вставка блока D (Deduplicate) на таких объёмах существенно снижает «шум» и обеспечивает детерминированность результата при слиянии нескольких источников.

Первая версия: надёжный Fastify (Node.js)

Мы стартовали с сервиса на Fastify, сосредоточившись на устойчивости и предсказуемом поведении под нагрузкой:

  • Стриминговый CSV-парсинг и батч-обработка (chunking) для 120 000+ строк.
  • Очереди задач с контролируемым backpressure, идемпотентные джобы, DLQ для проблемных батчей.
  • Кэширование соответствий таксономий и предварительная компиляция регулярных выражений.
  • Наблюдаемость: структурированные логи, метрики по этапам eDTL, алёрты и аудит-трейл.

Эта версия доказала надёжность и выдерживала крупные поставки без деградации стабильно, но при росте частоты обновлений и числа правил потребовался дополнительный запас по скорости.


Ускорение: переписывание вычислительного ядра на Go

Сохранив Fastify как «оркестратор» (API, расписания, отчётность), мы вынесли тяжёлые вычислительные этапы в отдельные Go-воркеры:

  • Потоковый парсинг (bufio + csv.Reader), pipeline/worker-pool для параллельной нормализации и маппинга.
  • Кэш-слои (LRU/TTL) для горячих соответствий таксономий, компиляция регекспов один раз на прогон.
  • Предсказуемое потребление памяти и стабильный GC под высокой загрузкой.

Результат: ускорение блоков «конвертация таксономии → маппинг → паттерн-матчинг» примерно на ~60% по внутренним бенчмаркам на идентичном железе и наборах данных (120 000+ строк).

Управление таксономиями и качеством

  • Профили поставщиков и целевых получателей: версии правил, словари синонимов, исключения, каскад «категория → подкатегория → атрибуты».
  • Паттерн-матчер: регулярные выражения, префиксы/суффиксы, разбор составных полей, эвристики для брендов/материалов.
  • Отбраковка: отсутствие фото, ≥3 пустых критичных поля, аномалии цен/размеров, «мягкие» дубли.
  • Отчётность: сводка причин отбраковки, дифф «до/после», показатели попаданий правил.

Надёжность и эксплуатация

  • Идемпотентность: безопасные повторы задач, детектора дубликатов событий, порядковая фиксация снапшотов.
  • DLQ и re-drive: управляемые сценарии повторной обработки проблемных батчей.
  • Мониторинг: скорость парсинга, время на этапах, доля дублей/ошибок, SLA по поставкам.
  • Контейнеризация и единые образы для stg/prod, canary-раскаты и план отката.

Что получил бизнес The Brand Collector

  • Надёжную обработку массивных CSV (120 000+ строк) без ручных доработок и простоев.
  • Единую таксономию для каталога партнёров, меньше дублей и мусора, предсказуемые результаты.
  • Существенный прирост производительности благодаря Go-ядру (≈60% быстрее на ключевых этапах), при этом сохранилась управляемость и прозрачность Fastify-оркестрации.

Итог

Мы прошли путь от надёжного, быстро внедряемого Fastify-сервиса к гибридной архитектуре с вычислительным ядром на Go, которая уверенно «переваривает» поставки на 120 000+ строк. Конвейер eDTL обеспечивает детерминированное качество, а комбинация Fastify+Go даёт нужный баланс между скоростью, устойчивостью и удобством эксплуатации.

Использованные технологии

FastifyGOSQLShopifyMatrixify

Достигнутые результаты

🎯

+60% скорости

🎯

Выдерживает csv 169.000+

Хотите создать похожий проект?

Расскажите о вашей идее, и мы поможем её реализовать