База данных MongoDB: Выбрана из-за гибкой схемы данных, что критически важно на этапе активного развития продукта, когда требования к данным часто меняются. И ее способности легко горизонтально масштабироваться.
РЕШЕНИЕ
Осознанный выбор технологий
и архитектуры под задачи бизнеса
Мы отказались от более традиционных, но ресурсоемких решений в пользу современных и эффективных технологий.
Ключевые архитектурные и технологические решения:
Язык программирования Rust: Был выбран за его безопасность памяти, нулевую стоимость абстракций и феноменальную энергоэффективность. Это значит, что один сервер на Rust может обрабатывать больше подключений, потребляя меньше CPU и памяти, чем аналоги на Node.js или Go. Для стартапа это прямая экономия денег.
Микросервисная архитектура: Сервис аутентификации, сервис управления устройствами и сервис обработки телеметрии были разделены. Это повысило отказоустойчивость и упростило дальнейшее развитие системы.
Механизмы отказоустойчивости: Реализованы автоматические переподключения устройств при обрыве связи, репликация данных в реальном времени и механизм отложенных команд.
Мы сознательно пошли на использование Rust, хотя это требовало от команды более высокой квалификации. Это окупилось стократно: мы не тратим время на поиск трудноуловимых багов в многопоточности, а наш клиент — деньги на избыточные серверы