What if one simple door could open access to all your app's services without confusion or errors?
Why API gateway concept in HLD? - Purpose & Use Cases
Imagine you have many different services in your app, each with its own address and rules. To use them, you must remember each address and how to talk to each one separately.
This manual way is slow and confusing. You waste time switching between services, and if one changes, your app breaks. It's like calling many different phone numbers for one task, making mistakes easy and fixing problems hard.
An API gateway acts like a friendly receptionist. It listens to your app's requests and sends them to the right service behind the scenes. Your app talks to just one place, making everything simpler, faster, and safer.
fetch('http://service1/api/data') fetch('http://service2/api/info')
fetch('http://api-gateway/api/data')It makes your app easier to build and scale by hiding complex service details behind one simple entry point.
Think of a busy hotel where guests only talk to the front desk, and the staff behind handle cleaning, food, and maintenance without bothering the guests.
Manual calls to many services are confusing and error-prone.
API gateway centralizes requests to one place.
This simplifies communication, improves security, and helps scale easily.
Practice
API gateway in a system architecture?Solution
Step 1: Understand the role of API gateway
An API gateway serves as the main entry point for clients to access multiple backend services, simplifying communication.Step 2: Eliminate incorrect roles
Storing data, managing database connections, or replacing backend services are not responsibilities of an API gateway.Final Answer:
It acts as a single entry point for client requests to backend services. -> Option DQuick Check:
API gateway = single entry point [OK]
- Confusing API gateway with database or storage
- Thinking API gateway replaces backend services
- Assuming API gateway manages data directly
Solution
Step 1: Identify API gateway functions
An API gateway routes incoming client requests to the correct backend services based on the request type or URL.Step 2: Remove unrelated functions
Serving static files, querying databases directly, or replacing clients are not typical API gateway roles.Final Answer:
Routing requests to appropriate backend services. -> Option CQuick Check:
API gateway routes requests = C [OK]
- Thinking API gateway queries databases directly
- Confusing API gateway with CDN or static server
- Assuming API gateway replaces client apps
Client -> API Gateway -> Service A (auth) -> Service B (data)
If the API gateway receives a request and Service A rejects it due to failed authentication, what will the client receive?
Solution
Step 1: Trace request through services
The request first goes to Service A for authentication. If Service A rejects it, the request does not proceed further.Step 2: Determine client response
Since authentication failed, the API gateway returns an authentication error to the client instead of data or success.Final Answer:
Authentication error response -> Option AQuick Check:
Failed auth = error response [OK]
- Assuming data is returned despite failed auth
- Thinking client gets no response (timeout)
- Believing success with empty data is sent
Solution
Step 1: Analyze 404 error meaning
A 404 error means the requested resource was not found, often due to incorrect routing or URL mapping.Step 2: Identify likely cause in API gateway
If backend services are up and clients send correct requests, misconfigured routing rules in the API gateway cause 404 errors.Final Answer:
API gateway routing rules are misconfigured. -> Option BQuick Check:
404 = routing misconfiguration [OK]
- Assuming backend services are down without checking
- Blaming client requests without validation
- Thinking overload causes 404 errors
Solution
Step 1: Understand aggregation requirement
The API gateway must collect data from multiple services and combine it into a single response for the client.Step 2: Evaluate options for aggregation
Forwarding to one service or sending separate responses does not aggregate data. Caching alone does not fulfill aggregation if fresh data is needed.Final Answer:
API gateway calls all three services, combines their responses, then sends one response to client. -> Option AQuick Check:
Aggregation = combine multiple service responses [OK]
- Thinking forwarding to one service aggregates data
- Sending multiple responses instead of one combined
- Assuming caching replaces aggregation
Ready to prove it?
Pass the test and this pattern moves unknown
