Перейти к содержимому
Mihail Leybuk-Galin — главная

Knigoland

Knigoland

Архитектура высокопроизводительной платформы электронной коммерции с ассортиментом из 40,000+ товаров и бесшовной интеграцией с ERP/CRM.

Сайт проекта (открывается в новой вкладке)
Роль
Архитектор программного обеспечения
Масштаб
40 тыс.+ SKU
Интерфейс витрины интернет-магазина

Интерфейс витрины интернет-магазина

Увеличить изображение

Задача

Knigoland требовалось надёжное цифровое представительство, способное отразить онлайн обширный ассортимент физических магазинов. Главная задача заключалась не просто в создании витрины, а в проектировании отказоустойчивой системы для синхронизации 40,000+ SKU с существующими унаследованными ERP- и CRM-системами почти в реальном времени без ущерба для производительности пользовательского интерфейса.

  1. Интеграция

    Сложная двусторонняя синхронизация с унаследованными системами для обеспечения точности складских остатков при пиковых нагрузках.

  2. Производительность

    Поиск товаров и просмотр категорий должны выполняться менее чем за 200 мс, несмотря на большой объём данных.

Архитектура системы

Технический проект

  • Go

    Основные API-сервисы. Выбор обусловлен эффективной обработкой множества одновременных запросов и низкой задержкой при обработке синхронных запросов.

  • PostgreSQL

    Основное хранилище данных, обеспечивающее соблюдение ACID для транзакционных данных и сложных связей.

  • Redis

    Слой кеширования в оперативной памяти, существенно снижающий нагрузку на базу данных при работе с каталогом и данными сессий.

  • Kafka

    Платформа потоковой обработки событий, снижающая связанность интеграционных сервисов и обеспечивающая асинхронные рабочие процессы.

Архитектурные решения

  1. Интеграция на основе событий

    Вместо прямых вызовов API между системами для передачи изменений состояния между ERP и веб-витриной внедрили Kafka. Это позволило защитить пользовательский опыт от простоев ERP и реализовать надёжные механизмы повторных попыток.

  2. Стратегия интенсивного кеширования

    Поскольку в электронной коммерции преобладают операции чтения, внедрили многоуровневую стратегию кеширования на базе Redis. Списки товаров и деревья категорий кешируются, а события Kafka обеспечивают инвалидацию кеша, позволяя получать данные каталога менее чем за 50 мс.

Метрики системы

Средняя задержка
42мс
SLA доступности
99.9%