Design: Microservices Architecture Characteristics
Focus on the core characteristics and design principles of microservices architecture. Out of scope are specific business domain implementations or detailed service logic.
Functional Requirements
FR1: Design a system that breaks a large application into small, independent services
FR2: Each service should own its own data and logic
FR3: Services must communicate over network protocols
FR4: Support independent deployment and scaling of each service
FR5: Ensure fault isolation so failure in one service does not affect others
FR6: Enable technology diversity per service
FR7: Allow teams to develop, deploy, and maintain services independently
Non-Functional Requirements
NFR1: Handle 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
NFR5: Data consistency can be eventual, not always immediate