Best practices to work with RabbitMQ as message broker on OutSystems

Best practices to work with RabbitMQ as message broker on OutSystems

  

Good morning. 

Please advise how best to integrate RabbitMQ into the OutSystems for messaging exchange?

https://www.outsystems.com/forums/discussion/35476/implementing-eventhandler-from-extension#Post126351 in this post it is mentioned that extensions are not focused on listening to the queue for new messages. Tell me, please, is this problem solved? And are there any other options besides actively polling the queue?

In the latest release, RabbitMQ can be used as TLS. In this case, will RabbitMQ be deployed in the OutSystems cloud? If I will use to RabbitMQ as message broker, can I deploy instance on OutSystems cloud?

Hi Yuriy,

I'm actually not sure if it's possible at all. The problem is that RabbitMQ doesn't seem to have a REST interface (at least after skimming their documentation), and it's indeed not possible to create a listener in an Extension, as the Extension is only "active" as long as its Consumers are. Though I understand for you this is problematic, I'm not sure you should call it something that's in need of being "solved" - it's not a bug, it's just the way the Platform works.

Kilian Hekhuis wrote:

Hi Yuriy,

I'm actually not sure if it's possible at all. The problem is that RabbitMQ doesn't seem to have a REST interface (at least after skimming their documentation), and it's indeed not possible to create a listener in an Extension, as the Extension is only "active" as long as its Consumers are. Though I understand for you this is problematic, I'm not sure you should call it something that's in need of being "solved" - it's not a bug, it's just the way the Platform works.

Is it not possible to have a process running indefinately, which starts up the extension to start listening for RabbitMQ?

Though.... I can only guess that this isn't something you would want to do with the Outsystems platform, it might be better to create a seperate application (or service) to connect RabbitMQ to Outsystems, best would be to create a webservice on Outsystems which is called by your other application/service (which is listening/subscribed to RabbitMQ).

Hi Joey,

It is indeed not possible to run something indefinitely, or listen to something indefintely (except for the Platform's REST and SOAP). Indeed, creating a seperate application that handles RabbitMQ, and from there calling a REST service exposed by an OutSystems app would I think be the best (and only) solution.

Hi Kilian.

Is it possible to deploy a web service, that will listen to RabbitMQ and send REST request to extension, on the OutSystems cloud together with the whole system?

Hi Yuriy,

I don't think you can deploy anything on the OutSystems cloud environment (which is on Amazon), apart from OutSystems software.

Thanks for the help, Kilian.

Kilian, one more question.
If I will use to RabbitMQ as message broker, can I deploy instance on OutSystems cloud?

No, I really don't think you can deploy anything on the cloud servers.

Thanks. Have a good day!

Thanks, you too!