Gateway Routing Pattern
In this tutorial, we are going to talk about Design Patterns of Microservices architecture which is the Gateway Routing pattern. We will use this pattern and practice when designing microservice architecture.
Setting up and managing each endpoint for backend service, that clients can consume can be challenging. When the API changes, the client must change as well. Even for simple solutions, with few backend services, the process of setting up them individually can be very daunting.
The solution for the above problem is the Gateway Routing pattern. Gateway Routing pattern is Route requests to multiple microservices with exposing a single endpoint. This pattern is useful when we want to expose multiple services on a single endpoint and route them to internal backend microservices based on the request.
When the client needs to consume several microservices, the Gateway Routing pattern offers to create a new endpoint that handles the request and routes this request for each service.
For example, an e-commerce application might provide services such as search Customers, Shopping cart, discount, and order history.
Basically, it put a gateway in front of a set of microservices and uses application Layer 7 routing to route the request to the internal services. With this pattern, the client application only needs to know about and communicate with a single endpoint.
If any internal service is changed, the client does not necessarily require updating. It can continue making requests to the gateway, and only the routing changes. So this pattern is the ancestor of the API Gateway Pattern.
So we should evolve our architecture by applying new microservices patterns in order to accommodate business adaptations faster time-to-market and handle larger requests.