Knigoland
Knigoland
Архитектура высокопроизводительной платформы электронной коммерции с ассортиментом из 40,000+ товаров и бесшовной интеграцией с ERP/CRM.
- Роль
- Архитектор программного обеспечения
- Масштаб
- 40 тыс.+ SKU
Knigoland
Архитектура высокопроизводительной платформы электронной коммерции с ассортиментом из 40,000+ товаров и бесшовной интеграцией с ERP/CRM.
Интерфейс витрины интернет-магазина
Увеличить изображениеKnigoland требовалось надёжное цифровое представительство, способное отразить онлайн обширный ассортимент физических магазинов. Главная задача заключалась не просто в создании витрины, а в проектировании отказоустойчивой системы для синхронизации 40,000+ SKU с существующими унаследованными ERP- и CRM-системами почти в реальном времени без ущерба для производительности пользовательского интерфейса.
Сложная двусторонняя синхронизация с унаследованными системами для обеспечения точности складских остатков при пиковых нагрузках.
Поиск товаров и просмотр категорий должны выполняться менее чем за 200 мс, несмотря на большой объём данных.
Технический проект
Основные API-сервисы. Выбор обусловлен эффективной обработкой множества одновременных запросов и низкой задержкой при обработке синхронных запросов.
Основное хранилище данных, обеспечивающее соблюдение ACID для транзакционных данных и сложных связей.
Слой кеширования в оперативной памяти, существенно снижающий нагрузку на базу данных при работе с каталогом и данными сессий.
Платформа потоковой обработки событий, снижающая связанность интеграционных сервисов и обеспечивающая асинхронные рабочие процессы.
Вместо прямых вызовов API между системами для передачи изменений состояния между ERP и веб-витриной внедрили Kafka. Это позволило защитить пользовательский опыт от простоев ERP и реализовать надёжные механизмы повторных попыток.
Поскольку в электронной коммерции преобладают операции чтения, внедрили многоуровневую стратегию кеширования на базе Redis. Списки товаров и деревья категорий кешируются, а события Kafka обеспечивают инвалидацию кеша, позволяя получать данные каталога менее чем за 50 мс.