мы делали вот такое решение (не знаю насчет его оптимальности, наш loadtest-ы были в норме).
- на стороне сервиса собирается первичный набор фичей
- этот набор фичей передается на сервак для расчета итогового вектора фичей (сервер на Scala)
- сервак для расчета фичей сохраняет вектор в redis по ключу
- сервис с ключиком обращается в сервис с моделькой
- сервис с моделькой достает вектор фичей из редиса, считает скор и отдает предикт