Understanding API gateways

Microservices architecture involves building a number of microservices. There are common features you will want to implement in each of these microservices. These common features are called cross-cutting concerns. 

Let's look at some of the important cross-cutting concerns:

  • Authentication, authorization, and security: How do we ensure that the microservice consumers are who they claim to be? How do we ensure that the consumers have the right access to microservices?
  • Rate limits: There might be different kinds of API plans for consumers and different limits (the number of microservice invocations) for each plan. How do we enforce the limits on a specific consumer?
  • Dynamic routing: Specific situations (for example, a microservice is down) might need dynamic routing.
  • Service aggregation: The UI needs for mobile are different from the ones for desktop. Some microservice architectures have service aggregators tailored for a specific device.
  • Fault tolerance: How do we ensure that failure in one microservice doesn't cause the entire system to crash?

When microservices talk directly with each other, these concerns have to be addressed by individual microservices. This kind of architecture may be difficult to maintain because each microservice might handle these concerns differently.

One of the most common solutions is to use an API gateway. All service calls to and between microservices should go through an API gateway. An API gateway typically provides the following features for microservices:

  • Authentication and security
  • Rate limiting
  • Insights and monitoring
  • Dynamic routing and static response handling
  • Load shedding
  • Aggregation of responses from multiple services
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset