Необходимо было разработать backend для управления сетью вендинговых автоматов, оснащенных сенсорными экранами.
Основные задачи:
1. Обеспечение связи с сотнями автоматов, находящихся "за серыми IP-адресами".
2. Взаимодействие с аппаратной частью автомата (платой) по протоколу ModBus.
3. Синхронизация всех автоматов с сервисом аналитики.
4. Обновление товарного остатка автомата после затаривания.
Для решения поставленной задачи была выбрана следующая микросервисная архитектура:
Для автомата:
1. Сервис, работающий с локальными категориями товаров, товарами, товарным остатком.
2. Сервис для синхронизации товаров и остатка с сервисов accounting (главный сервис учета товаров)
3. Сервис для взаимодействия с платой по протоколу ModBus.
Для общего backend:
1. Сервис для отправки команд на автоматы.
2. Сервис для аналитики продаж.
3. Сервис для затаривания автоматов.
4. Сервис для авторизации.
5. Gateway сервис.
6. Сервис для управления авотматами.
7. Сервис для управления всеми товарами и категориями.
Была создана мощная и отказоустойчивая платформа для управления распределенной сетью вендинговых автоматов. Решение позволяет централизованно управлять сотнями устройств в режиме 24/7 с "серыми IP-адресами".
Проект выполнен в соавтростве с дизайнером и frontend разработчиком.