Design: Request Aggregation Service
Design the aggregation layer and its interaction with microservices. Out of scope: internal microservice implementations and client-side logic.
Functional Requirements
FR1: Aggregate data from multiple microservices into a single response
FR2: Support concurrent requests with low latency
FR3: Handle partial failures gracefully and return partial data when some services fail
FR4: Cache aggregated responses to improve performance for repeated requests
FR5: Provide a unified API endpoint for clients
Non-Functional Requirements
NFR1: Support up to 5000 concurrent aggregation requests
NFR2: API response time p99 under 300ms
NFR3: Availability target of 99.9% uptime
NFR4: Data freshness within 5 seconds for cached responses