и написали бы разные энпоинты по которым запускались процессы
Задача делится на условный сервер и клиент, где сервер это: Task-Manager (Хранение задач в шардированном виде, построение графа выполнения DAG, выставления приоритетов в зависимости от сложности (глубины DAG), бюджета и приоритетности, хранение результата выполнения); Resource-manager (Получение информации о доступных ресурсах (как вычислительных так и разные теги - например список задач которые поддердиваются данным ресурсом) и планирование scale-up и scale-down); Load-distributor соотвественно распределение задач по ресурсам; API-server, events, metrics, UI, etc. И клиентская сторона, тут богатый разброс вариантов (от SDK под любой язык, до разных интеграций), клиент соответсвенно получает, запускает задачу и возвращает результат, То, что вы описали это условный клиент