I have a Rails app installed on several remote servers. The Rails app generates financial transactions and I'd like all the remote servers send this metadata to a central hub where they are stored in a relational DB. There MIGHT be other processing tasks on the transactions. These servers are not under my control so I can't guarantee constant connection to the internet. They will be connected to the internet at least a couple of hours each day.
Is RabbitMQ useful for such an architecture? The Exchange and the Queues would be installed on the remote servers (along with the Producer Rails app), right? Would I have one consumer service per each remote server, or could I have one central consumer service for all the remote servers/queues?
Bonus questions since I'm such a noob in the world of RabbitMQ:
- what port would I need to open on the remote machines such that my consumer can consume the data from the queue?
- I would use a Direct Exchange, right?
- how many messages can accumulate in the queue before being consumed? Is there a chance that things might crap out if the remote server don't get connected to the internet for a couple of days (worst scenario)?
