Design: REST API Communication Between Microservices
Design focuses on REST API communication between microservices including security, reliability, and scalability. Out of scope are the internal business logic of services and UI design.
Functional Requirements
FR1: Enable communication between multiple microservices using REST APIs
FR2: Support synchronous request-response interactions
FR3: Ensure secure communication with authentication and authorization
FR4: Handle failures gracefully with retries and timeouts
FR5: Allow versioning of APIs for backward compatibility
FR6: Support monitoring and logging of API calls
Non-Functional Requirements
NFR1: Handle up to 10,000 requests per second between services
NFR2: API response latency p99 under 200ms
NFR3: 99.9% availability for inter-service communication
NFR4: Use stateless REST APIs
NFR5: Support JSON as data format