With a customer we are looking how to connect Prolog to RabbitMQ for relatively low-traffic communication. We stumbled on STOMPL by @honnix. That didn’t really work anymore. I forked it and did some serious rewrites to simplify the STOMP frame (de)serialization, simplify the API and work towards lazy connection establishment (done) and automatic reconnect (not yet done). The new code is at GitHub - JanWielemaker/stompl: Prolog STOMP client
I think there are several more things that can be improved. Notably for ACK and NACK messages we can probably just pass the original message header? Eventually I plan to add this to the standard SWI-Prolog distribution as it is both pretty useful and small. Together with the Redis and ROS interfaces we build proof that Prolog can integrate into modern micro services architectures.
Is there anyone with concrete experience using STOMP who is willing to have a look at the current state and see what is missing, can be simplified/improved, etc.? Also, what is needed to deal with version 1.2 of the STOMP protocol?