Api Gateway easy
Your high-performance backend uses gRPC (binary protocol), but your web application is built with standard JavaScript that only speaks JSON over HTTP. How does the Gateway bridge this gap?
- A It forces the browser to install a specialized binary gRPC driver.
- B Via Protocol Translation (Transcoding): It accepts the JSON/HTTP request from the web and translates it into gRPC calls for the backend services.
- C It requires all microservices to be rewritten to support only HTTP/1.1.
- D It uses a satellite-based relay to convert the signals into a web-readable format.
Answer: B. Via Protocol Translation (Transcoding): It accepts the JSON/HTTP request from the web and translates it into gRPC calls for the backend services.
Protocol Translation allows internal services to use highly efficient, performant protocols (like gRPC or GraphQL) without forcing external clients to adopt those same protocols, maintaining compatibility with standard web technologies.
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?