Skip to content

Service Discovery — Detailed#

flowchart TB
  subgraph Services[Service instances]
    A1[Service A pod 1]
    A2[Service A pod 2]
    B1[Service B pod 1]
  end

  subgraph Registry
    REG[Registry cluster<br/>Consul / etcd / Eureka / ZK]
    RAFT[Raft consensus]
    KV[(KV store with TTL leases)]
    GOSSIP[Gossip / health]
  end

  subgraph Clients
    SDK([Client SDK<br/>watch + cache])
    SIDE[Sidecar proxy / Envoy]
    DNS[DNS API]
    XDS[xDS subscribe]
  end

  subgraph Health
    HC[Active health checks]
    PASS[Passive: traffic outcomes]
    TTL[Heartbeat TTL leases]
    DRAIN[Drain mode]
  end

  subgraph Mesh[Service mesh integration]
    ISTIO[Istio / Linkerd]
    SD[xDS service discovery]
    MTLS[mTLS identities]
  end

  Services -. register .-> Registry
  Registry --- RAFT
  Registry --- KV
  Registry --- GOSSIP
  Health --> Services
  Clients --> Registry
  SDK -. cache + watch .-> KV
  DNS -. SRV / A .-> KV
  XDS --> SIDE
  Mesh --- SIDE

    classDef client fill:#dbeafe,stroke:#1e40af,stroke-width:1px,color:#0f172a;
    classDef edge fill:#cffafe,stroke:#0e7490,stroke-width:1px,color:#0f172a;
    classDef service fill:#fef3c7,stroke:#92400e,stroke-width:1px,color:#0f172a;
    classDef datastore fill:#fee2e2,stroke:#991b1b,stroke-width:1px,color:#0f172a;
    classDef cache fill:#fed7aa,stroke:#9a3412,stroke-width:1px,color:#0f172a;
    classDef queue fill:#ede9fe,stroke:#5b21b6,stroke-width:1px,color:#0f172a;
    classDef compute fill:#d1fae5,stroke:#065f46,stroke-width:1px,color:#0f172a;
    classDef storage fill:#e5e7eb,stroke:#374151,stroke-width:1px,color:#0f172a;
    classDef external fill:#fce7f3,stroke:#9d174d,stroke-width:1px,color:#0f172a;
    classDef obs fill:#f3e8ff,stroke:#6b21a8,stroke-width:1px,color:#0f172a;
    class SDK client;
    class SIDE,DNS edge;
    class A1,A2,B1,REG,RAFT,GOSSIP,XDS,HC,PASS,TTL,DRAIN,ISTIO,SD,MTLS service;
    class KV datastore;

Glossary & fundamentals#

Concepts referenced in this design. Each row links to its canonical page; the tag column shows whether it is a high-level (HLD) or low-level (LLD) concept.

Tag Concept What it is Page
HLD Load balancer / GSLB L4/L7 traffic distribution and failover load-balancer
HLD Raft / Paxos consensus replicated state machine via majority quorum consensus-raft-paxos
HLD Service mesh sidecar mesh, mTLS, traffic policy service-mesh
LLD Structural patterns Adapter, Decorator, Facade, Proxy, Composite structural-patterns