Мне лично нравится: ØMQ . Это библиотека, которая имеет знакомый BSD-подобный интерфейс для передачи сообщений, но вы обнаружите, что она реализует интересные шаблоны для распределения задач.
Похоже, вы хотите организовать несколько процессов в конвейере. ØMQ позволяет вам делать это, используя push и poll сокеты. (И после этого вы обнаружите, что можно даже без особых усилий масштабировать несколько процессов и машин.) Для начала посмотрите руководство и zmq_socket (3) man-страница специально для того, как работают push и pull.
Привязки доступны для всех языков, которые вы упоминаете.
Что касается содержания сообщения, ØMQ не заботится об этом, это всего лишь блоки необработанных данных. Вы можете использовать любой формат, который вам подходит, например, JSON, или, возможно, Протокол буфера .
В чем я не уверен, так это «контролирующее состояние», о котором вы упомянули. Вы заинтересованы, например, в отмене работы на полпути?