Мобильное приложение отправляет при помощи REST API собранные данные о зубе на сервер (API Gateway), далее в зависимости от вида данных они отправляются в различные хранилища, изображения на файловый сервер, текстовые данные в БД. Учитывая неоднородную структуру данных имеет смысл использовать нереляционные БД, к примеру MongoDB.

Через брокер сообщений сервер отправляет запросы на отдельные микросервисы ML-моделей для оценки зуба, планирования маршрута (на каждую задачу отдельная модель в своем Docker контейнере). По мере свободных ресурсов микросервисы забирают данные из файлового хранилища, БД, обрабатывают и сохраняют результат в БД. Через брокер сообщений отправляется запрос на "сервис информирования" о том, что операции обработки закончены.

Мобильное приложение переодически опрашивает через REST API сервис информирования о результате обработки, по готовности результата данные загружаются в приложение.

Также "сервис информирования" через REST API взаимодействует с платежной системой для перевода монеток.

Преимущества решения.

Использование брокера сообщений, например RabbitMQ и отдельных микросервисов для ML-алгоритмов, позволяют масштабировать самую ресурсоемкую часть системы.