Переформулирую свой вопрос
Как организовать обмен сообщениями между процессами по принципу mailbox?
Мне нужно организовать взаимодействие между сервером и несколькими воркерами. Для этого я хочу иметь именованную очередь сообщений, которая будет жить независимо от процессов из нее потребляющих. Т.е. сначала может проснуться воркер, плюнуть что то в очередь сервера. Потом проснется сервер, прочитает что то из своей очереди и плюнет что то в воркера. Тот может быть мертвым в это время, встал - ответил. И т.д.
Производительность самой очереди никакого значения не имеет. Нужно организовать максимально просто с минимумом зависимостей.
Всё это делается на счет раз через SQL базу - пишем в таблицу сообщение, от кого, кому, в консьюмере поллим базу доставая нужное сообщение. Но вроде как это совсем некрасиво и грузит базу пустыми запросами. Хочется чтобы сообщения в консьюмера пушились.
Какие варианты.
RabbitMQ - вроде не умеет очереди, к которым не подсоединены консьюмеры.
Redis - не гарантирует доставку сообщений (?)
Kafka - вроде умеет, но тяжелый и медленный на старте и вообще оверкил явный, у меня 1 сообщение в пол часа, зачем для такого кафка?
ZeroMQ - нет выделенного брокера и несколько низкоуровнево
В результате я конечно сделаю через базу но буду страдать в поисках более элегантного решения. Прошу помощи зала!
Большая просьба не просто посоветовать что юзать из брокеров а хотя бы в двух словах описать архитектуру объектов внутри него (queue exchange topic consumer итп)