Design: Service Mesh for Microservices Communication
Design the service mesh infrastructure and components managing microservice communication. Exclude microservice business logic and deployment pipelines.
Functional Requirements
FR1: Enable secure and reliable communication between microservices
FR2: Provide observability with metrics, logs, and tracing for service interactions
FR3: Support traffic management features like load balancing, retries, and circuit breaking
FR4: Allow policy enforcement such as authentication and authorization between services
FR5: Minimize changes required in existing microservices code
Non-Functional Requirements
NFR1: Handle communication for up to 1000 microservices
NFR2: Ensure p99 latency overhead for service calls is less than 5ms
NFR3: Achieve 99.9% availability for service communication
NFR4: Support dynamic scaling of microservices without downtime