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