Design: Microservices with Single Responsibility
Design focuses on defining microservices boundaries, communication, and data ownership. Infrastructure details like cloud provider or CI/CD pipelines are out of scope.
Functional Requirements
FR1: Each microservice should have one clear responsibility or business capability.
FR2: Services must communicate with each other to fulfill user requests.
FR3: The system should allow independent deployment and scaling of each service.
FR4: Services should handle failures gracefully without affecting others.
FR5: Data owned by each service should be encapsulated and not shared directly.
Non-Functional Requirements
NFR1: Support up to 10,000 concurrent users.
NFR2: API response latency p99 under 300ms.
NFR3: Availability target of 99.9% uptime.
NFR4: Services must be loosely coupled and independently deployable.