Bird
Raised Fist0
Microservicessystem_design~7 mins

Why API gateways unify service access in Microservices - Why This Architecture

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Problem Statement
When multiple microservices each expose their own endpoints, clients must manage many different URLs, protocols, and authentication methods. This complexity leads to tight coupling, increased client logic, and difficulty in evolving services independently.
Solution
An API gateway acts as a single entry point that routes client requests to the appropriate microservices. It centralizes concerns like authentication, rate limiting, and protocol translation, simplifying client interactions and decoupling clients from internal service details.
Architecture
Clients
Clients
API Gateway
API Gateway
User
Service

This diagram shows clients sending requests to a single API Gateway, which routes them to multiple backend microservices like User, Order, and Payment services.

Trade-offs
✓ Pros
Simplifies client code by providing a single endpoint for all services.
Centralizes cross-cutting concerns such as authentication, logging, and rate limiting.
Enables independent evolution of backend services without impacting clients.
Improves security by hiding internal service details from clients.
✗ Cons
Introduces a single point of failure if the gateway is not highly available.
Can become a performance bottleneck under heavy load without proper scaling.
Adds operational complexity and requires careful management and monitoring.
Use when you have multiple microservices with diverse APIs and want to simplify client interactions and centralize common concerns, especially at scale beyond hundreds of services or clients.
Avoid when your system has only a few services or clients, as the added complexity and latency of a gateway may outweigh benefits.
Real World Examples
Netflix
Uses an API gateway to route client requests to various backend services, enabling device-specific optimizations and centralized authentication.
Amazon
Employs API gateways to unify access to its vast microservices ecosystem, simplifying client integration and enforcing security policies.
Uber
Uses API gateways to manage diverse service endpoints and provide a consistent interface for mobile and web clients.
Code Example
Before using an API gateway, clients must call each service separately, increasing complexity. After applying the API gateway pattern, clients call a single endpoint, and the gateway handles routing and aggregation, simplifying client code.
Microservices
### Before: Clients call services directly
import requests

user_response = requests.get('http://user-service/api/users/123')
order_response = requests.get('http://order-service/api/orders?user=123')

### After: Clients call API Gateway
import requests

gateway_response = requests.get('http://api-gateway/api/user-orders/123')

# API Gateway routes internally to user and order services and aggregates response
OutputSuccess
Alternatives
Client-side Aggregation
Clients directly call multiple services and aggregate responses themselves.
Use when: When clients are simple and few, and you want to avoid adding infrastructure complexity.
Backend for Frontend (BFF)
Separate backend services tailored for each client type instead of a single gateway.
Use when: When different clients require highly customized APIs and logic.
Summary
API gateways prevent client complexity by providing a single unified entry point to multiple microservices.
They centralize common concerns like authentication and rate limiting, improving security and maintainability.
While they add operational overhead, API gateways enable scalable and flexible microservice architectures.

Practice

(1/5)
1. What is the main purpose of an API gateway in a microservices architecture?
easy
A. To provide a single entry point for clients to access multiple services
B. To store all the data from microservices in one database
C. To replace all microservices with a single monolithic service
D. To directly connect clients to each microservice without any intermediary

Solution

  1. Step 1: Understand the role of API gateways

    API gateways act as a single point where clients send requests instead of calling multiple services directly.
  2. Step 2: Compare options with this role

    Only To provide a single entry point for clients to access multiple services describes this single entry point role correctly. Other options describe unrelated or incorrect roles.
  3. Final Answer:

    To provide a single entry point for clients to access multiple services -> Option A
  4. Quick Check:

    API gateway = single entry point [OK]
Hint: API gateway = one door for many services [OK]
Common Mistakes:
  • Thinking API gateway stores data
  • Confusing API gateway with database
  • Believing API gateway replaces microservices
2. Which of the following is a correct function of an API gateway in microservices?
easy
A. Routing client requests to appropriate microservices
B. Directly updating the database of each microservice
C. Replacing the need for load balancers
D. Running all microservices in a single process

Solution

  1. Step 1: Identify API gateway responsibilities

    API gateways route client requests to the correct microservice based on the request.
  2. Step 2: Evaluate each option

    Routing client requests to appropriate microservices matches routing requests. Options B, C, and D describe unrelated or incorrect functions.
  3. Final Answer:

    Routing client requests to appropriate microservices -> Option A
  4. Quick Check:

    API gateway routes requests = A [OK]
Hint: API gateway directs traffic like a traffic cop [OK]
Common Mistakes:
  • Assuming API gateway updates databases
  • Confusing API gateway with load balancer
  • Thinking API gateway runs all services
3. Consider this scenario: A client sends a request to an API gateway which then calls three microservices and combines their responses before replying. What is the main benefit of this approach?
medium
A. It increases the number of client requests to microservices
B. It reduces the number of client requests and simplifies client logic
C. It forces clients to handle data merging from multiple services
D. It removes the need for microservices to communicate internally

Solution

  1. Step 1: Analyze the API gateway's role in combining responses

    The API gateway collects data from multiple services and sends a single combined response to the client.
  2. Step 2: Understand the benefit for the client

    This reduces client complexity and the number of requests it must make, matching It reduces the number of client requests and simplifies client logic.
  3. Final Answer:

    It reduces the number of client requests and simplifies client logic -> Option B
  4. Quick Check:

    API gateway combines data = fewer client requests [OK]
Hint: API gateway merges data, so client asks less [OK]
Common Mistakes:
  • Thinking client must merge data
  • Believing requests increase with API gateway
  • Assuming microservices stop internal communication
4. A developer notices clients are directly calling multiple microservices, bypassing the API gateway. What issue does this cause?
medium
A. Clients will have fewer requests to manage
B. Microservices will automatically merge responses for clients
C. API gateway will block all client requests
D. Clients lose the benefits of unified access and security provided by the API gateway

Solution

  1. Step 1: Understand the role of API gateway in client access

    The API gateway provides unified access and security features like authentication and rate limiting.
  2. Step 2: Analyze the effect of bypassing the gateway

    Bypassing removes these benefits, causing clients to handle complexity and security themselves, matching Clients lose the benefits of unified access and security provided by the API gateway.
  3. Final Answer:

    Clients lose the benefits of unified access and security provided by the API gateway -> Option D
  4. Quick Check:

    Bypassing API gateway = lose unified access [OK]
Hint: Bypass gateway, lose security and simplicity [OK]
Common Mistakes:
  • Assuming microservices merge responses automatically
  • Thinking API gateway blocks all requests if bypassed
  • Believing clients have fewer requests when bypassing
5. In a large system with many microservices, why is using an API gateway better than letting clients call services directly? Choose the best explanation.
hard
A. API gateways replace the need for microservices and store all data centrally
B. Clients can only call one microservice at a time without an API gateway
C. API gateways reduce client complexity, improve security, and enable request routing and response aggregation
D. API gateways slow down requests by adding unnecessary steps

Solution

  1. Step 1: List benefits of API gateways in large systems

    They simplify client calls by unifying access, add security layers, route requests properly, and combine responses.
  2. Step 2: Compare options with these benefits

    API gateways reduce client complexity, improve security, and enable request routing and response aggregation correctly lists these benefits. Options A, C, and D are incorrect or misleading.
  3. Final Answer:

    API gateways reduce client complexity, improve security, and enable request routing and response aggregation -> Option C
  4. Quick Check:

    API gateway benefits = B [OK]
Hint: API gateway = simpler, safer, smarter client access [OK]
Common Mistakes:
  • Thinking API gateway replaces microservices
  • Believing clients cannot call multiple services without gateway
  • Assuming API gateway always slows down requests