Продолжаем тему интеграции систем на Common Lisp. С интеграцией со внешним миром вроде разобрались в прошлой теме: единственным жизнеспособным, стандартным и не костыльным вариантом являются веб-сервисы. Поддержка CORBA слабая.
Теперь рассмотрим задачу интеграции распределённых систем, когда обе системы написаны на Common Lisp, путём отправки асинхронных сообщений. В Java для этого есть такая замечательная штука как JMS. Ключевые возможности JMS такие:
- publish-subscribe и point-to-point семантика,
- безопасность как уровня транспорта так и на доступ к topic'ам,
- гарантия доставки,
- транзактность,
- durability.
Есть ли что-то такого же уровня для Common Lisp? Я тут наткнулся на библиотеку ZeroMQ для CL, её я так понимаю написал наш mv, за что ему конечно спасибо... но ZeroMQ - безброкерная система, так что она пролетает по части гарантии, транзактности и durability (сохранения сообщений при отвале клиента и доставка при переподключении).
UPD: По просьбам трудящихся, замечу, что мы ориентируемся на стабильные промышленные ОС (Linux, Solaris) на x86 и RISC железе. Настоятельно прошу не предлагать экспериментальные и маргинальные решения вроде миграции на Plan 9, спаять лисп-машину и т.п.