Api Gateway easy
How does an API Gateway decide where to route a request like `GET /api/v1/billing/history` in a microservices cluster?
- A It broadcasts the request to every microservice and waits for whichever one answers first.
- B It uses Path-Based Routing rules (e.g., anything starting with `/billing/` is mapped to the inner IP address of the Billing Service).
- C It queries the user's browser to ask which service should handle the request.
- D It randomly picks any available server to handle the request to ensure even load distribution.
Answer: B. It uses Path-Based Routing rules (e.g., anything starting with `/billing/` is mapped to the inner IP address of the Billing Service).
The Gateway acts as a directory. When it sees the URL path, it looks up its 'Routing Table' to find the corresponding service. This allows you to have a single domain (`api.myapp.com`) but route traffic to 50 different microservices based on the URL structure.
One system design question a day, with spaced repetition so the ones you miss come back.
Get the appRelated questions
- Your Gateway communicates with backends via HTTP/1.1 connections. A slow backend service causes 'Head-of-Line Blocking'. How does switching to HTTP/2 as the Gateway-to-Backend transport mitigate this?
- What is the primary architectural role of an API Gateway in a microservices environment?
- Why is 'Stateless Token Validation' (e.g., using JWTs) significantly more scalable at the Gateway level than 'Stateful Validation' (e.g., using Opaque/Reference Tokens)?
- Your Gateway is configured to cache any URL ending in `.css` or `.jpg`. An attacker tricks a victim into visiting `https://api.com/v1/profile/info/style.css`. How can this lead to an 'Account Takeover'?
- An API is receiving a sudden surge of 10,000 requests per second from a single IP address. How does an API Gateway preserve the stability of the backend services?
- How can an API Gateway help prevent 'Double Charging' in a payment system when a mobile client retries a failed request due to a poor connection?