Design: Linkerd Service Mesh
Design the core components and flow of Linkerd as a service mesh for microservices communication. Out of scope: deep Kubernetes internals, alternative service meshes.
Functional Requirements
FR1: Provide secure communication between microservices
FR2: Enable observability with metrics and tracing
FR3: Support load balancing and failure handling
FR4: Allow easy deployment without changing application code
FR5: Integrate with existing Kubernetes clusters
Non-Functional Requirements
NFR1: Must handle up to 10,000 microservice instances
NFR2: Latency overhead should be less than 5ms per request
NFR3: Availability target of 99.9% uptime
NFR4: Support TLS encryption for all service-to-service traffic