2022-03-29 ยท 1 min read


  • Consul is a service mesh.
  • Service Discovery: services can register themselves with Consul, like api or mysql. Other services can discover providers by querying Consul.
  • Health Checking: Consul clients can provide simple health checks like HTTP 200 OK or platform metrics like memory or CPU utilization below 90%. These health checks can then be used by the service discovery and service routing to route around unhealthy nodes.
  • KV Store: Consul provides a centralized KV store, which can be used for dynamic configuration, feature flags, coordination, leader election, etc...
  • Secure Service Communication: Consul can generate and distribute TLS certs to each service to establish mTLS connections with other cluster services. Services can be segmented dynamically to allow only specific services to communicate.
  • Multi Datacenter: Consul supports multiple regions / data centers.
  • Distributed, highly available system.
  • Maintains centralized Registry of services in cluster.
  • Maintains centralized KV Store.
  • Each service has a sidecar which transparently proxies all inbound and outbound requests.
  • Configures each service with TLS certificates from our cluster CA. Services connect to each other through sidecar proxies, which do mTLS to guarantee authentication and integrity within the cluster.
  • Maintain service dependency graph.