State replication with Symfony Workflow, Messenger, and RabbitMQ

JoliCode - JoliCodeBlog - 21/08
In this article, we’ll see how we can replicate some data between two different applications that live in two different locations. But the special thing is that the network is not reliable! Yeah, network is never reliable, but here, it’s really not 😁 The project has two applications:

In this article, we’ll see how we can replicate some data between two different applications that live in two different locations. But the special thing is that the network is not reliable! Yeah, network is never reliable, but here, it’s really not 😁

The project has two applications:

  • the “Core”, that serves the website to the customer, hosted in the cloud. It’s a traditional e-commerce application built with Symfony.
  • the “Warehouse”, that manages the logistics, hosted in each warehouse. It’s an application built on top of Symfony, with a heavy use of the Workflow component.

Since warehouses are located deep in the country land, the overall connectivity can fail from time to time. Many people work there. They can’t stop working if the warehouse loses internet connection. That’s why we must host the application on premise. Finally, all warehouses must send the state of each article to the Core, in near real time.

Section intitulée the-architectureThe Architecture

In each zone, we have a Symfony application and a RabbitMQ instance, and other services which are not relevant here. Each warehouse will publish messages...
[Courte citation de 8% de l'article original]

Loading...