As it stands, we have our MessageServer
and WebServer
in the same service.py
module. It's now time to split these, especially since we will be removing the WebServer
in favor of a Flask server. At the end of this chapter, the goal is to have a total of three microservices working together, each with its own specific roles:
The preceding diagram demonstrates how our services will integrate with each other. Take note of how the Message Service and User Service are totally unaware of each other. A change to the User Service should not require a change to the Message Service and vice versa. By splitting these services, we also gain the advantage of being able to deploy new code to a single service without affecting the others. A bonus from Nameko using RabbitMQ is that, if a service does go down for a short period of time, any work will simply be queued until the service comes back online. We will now begin to reap some of the benefits of a microservice architecture...