Подскажите, это уже где-то реализовано:
Задача - Конвеерная распределенная обработка данных. в данный момент - реализация на python (воркер) + tarantool queue (очереди - хранение параметров шагов) т.е. грубо говоря скачай видео (аудио, еще что-то), обработай, посчитай показатели, залей куда-то результаты. вся обработка предполагает использование разных ресурсов и разумно делать разные типы заданий на разных железяках так-же нужно горизонтально масштабироваться так-же хотелось бы имлементировать логику конвеера в одном месте.
т.е. что-то вроде
список_урлов = получить_список() # вызывается где угодно
цикл по список_урлов:
список_файлов_скачаных += скачай_файл() # вызывается на машинах с сетью и дисками
склейка =склей_файлы(список_файлов_скачаных ) # вызывается на машинах с толстым процом
расчитай_показатели(склейка ) # вызывается на машинах с gpu
вот логику выше - не хотелось бы размазывать по куче мест, и держать в одном (сейчас это написанно в коде шага (т.е. шаг знает - какой будет следующий). это ведет к сложности изменений / сложности писания разных цепочек обработки. хочется все более-менее нативно. при этом в задаче используются очереди, и в какую очередь - какое задание добавлять - опять-же в коде шага.