This question evaluates skills in building resilient API aggregation services, including concurrent parallel calls with futures/promises, per-call and overall timeouts, configurable failure policies (WAIT_ALL vs FAIL_FAST), retry mechanics with capped exponential backoff and jitter, partial-failure handling, and observability via structured logs and metrics. It is commonly asked in system design interviews to probe practical implementation of concurrency and resilience patterns, trade-offs in failure policies and timeouts, and the ability to define clear interfaces and monitoring; category: System Design; level: practical application with architectural and conceptual considerations.

You are designing a backend service that exposes a single HTTP endpoint. When called, the endpoint must call three external HTTP APIs in parallel, aggregate their responses, and return a combined JSON result. The service must be robust to timeouts, failures, and include proper retries, observability, and clear code organization.
Assume a typed language with futures/promises support (e.g., Java with CompletableFuture). You may choose reasonable defaults and make minimal assumptions if needed.
Login required