I really like the idea of setting up a service such as RabbitMQ to handle my larger jobs and have n workers scale and process those requests. My question lies in if I should also handle 'quick' actions a user performs in the UI, such as saving small changes in a form, through the queue.
When I read about AMQP RPC it sounds like this would WORK for this kind of task, but is it the smart thing to do for such a use case? Am I making it more complicated than it should be and should use REST + AMQP depending on task?
Any comments would be greatly appreciated!
While writing to a queue is fast, retrieving a response from a queued message requires waiting for the message to be processed, and waiting for the feedback message from another queue where the response gets queued.
As you can probably tell, this gets really complicated really fast. So queues are really good for one way, asynchronous communication, but pretty poor for synchronous communication. It can be possible to make this all work very fast, but the added complexity for simple UI flow may not be worth it.
REST will be a better choice here, since response codes and status messages are easier to work with.