RabbitMQ or REST API Public

Currently working on designing an application that will take in JSON data from remote client applications. The data these client applications are sending is going to go into a Message Broker, namely RabbitMQ, to be later processed. In the architecture, I cannot really decide if the client application should send directly to Rabbitmq over ampq or if it should hit a REST API and then the REST API sends it to RabbitMQ.

The extra step of the REST API seems unnecessary but I’m not quite sure if RabbitMQ should be publicly accessible. Security and stability being the main concern.

A few key notes about the client application:

  • Will be thousands of them (think IOT) all over the world
  • Will access either RabbitMQ or the REST API over the internet
  • Will not be in networks that I control

Appreciate the insight.