База данных MongoDB: Выбрана из-за гибкой схемы данных, что критически важно на этапе активного развития продукта, когда требования к данным часто меняются. И ее способности легко горизонтально масштабироваться.
РЕШЕНИЕ
Разработали легкую платформу для интернет-магазинов на Rust
Так как необходимо было заложить фундамент на вырост, мы разработали мультитенантную backend-платформу с нуля на языке Rust. Пишем сухо и с техническим уклоном. Ключевые аспекты решения:
Высокоэффективное ядро на Rust: Использование фреймворка Actix-web и асинхронного программирования позволило создать неблокирующий бэкенд, способный обрабатывать тысячи одновременных соединений с минимальным потреблением памяти.
Гибкая архитектура "один сервер — много клиентов": Вся логика разграничения данных между разными магазинами (мультитенантность) была реализована на уровне приложения. Это позволило запускать десятки проектов в рамках одного экземпляра программы и одной базы данных.
REST API как единая точка входа: Все взаимодействие с внешними системами (1С, CDEK, телефония) было унифицировано через единое API. Это упростило поддержку, замену и добавление новых интеграций.
Динамический рендеринг на основе шаблонов: Для максимальной гибкости контента без перекомпиляции кода был реализован движок для шаблонов в формате
Django Templates. Данные из MongoDB подставляются в шаблоны "на лету" при каждом запросе.
Платформа была развернута и протестирована на скромном виртуальном сервере с техническими характеристиками: 1 ядро * 2,2 ГГц, 1 Гб RAM, 10 Гб HDD, OS Ubuntu
Экономичная работа с данными: Выбор MongoDB был обусловлен ее документоориентированностью, что идеально легло на предметную область "товар → заказ". Это позволило избежать сложных JOIN'ов и увеличить скорость отклика БД.