In this post, you'll find a practical example of applying RabbitMQ in software development.
RabbitMQ server is a queue server which allows different applications to interact with each other according to AMQP protocol, widely used by such corporations as Google, Microsoft, NASA, Red Hat, VMware, AT&T.
RabbitMQ is employed for developing service architecture when the following selected services process resource intensive and dormant tasks:
Xero – service for online bookkeeping
Secure Trading – service for payment processing
RabbitMQ is used to establish communication between servers; perhaps, it is one of the most efficient solutions for this purpose.
Imagine, that the company has the following problem: with an increasing number of clients, a lot of time was spent on such financial service operations as invoice creation, payment request, payment verification, and confirmation (the operations are made manually).
To automate processes of creating invoices via third-party Xero API and delivering invoices via email; make automatic debiting from user card via Secure Trading API.
Solution with cron
The first pancake was a failure. We created a script, which runs two times a week and made necessary actions within a single process. This imposed constraints on the overall performance (long answer waits from API). Also, any mistake on one of the stages led to finishing the work of the whole process and required a complete script restart.
So, we came to the conclusion that we needed to divide code into several independent processes with the ability of communication between them.
Also, feel free to share your experience in working with this technology!)