--- description: |- Consul is a highly available and distributed service discovery and key-value store designed with support for the modern data center to make distributed systems and configuration easy. ---
<%= inline_svg "logo-text.svg", height: 120, class: "logo" %>

Service Discovery and Configuration Made Easy

Get Started Download <%= latest_version %>
<%= inline_svg "feature-discovery.svg", width: 100 %>

Service Discovery

Consul makes it simple for services to register themselves and to discover other services via a DNS or HTTP interface. Register external services such as SaaS providers as well.

<%= inline_svg "feature-health.svg", width: 100 %>

Failure Detection

Pairing service discovery with health checking prevents routing requests to unhealthy hosts and enables services to easily provide circuit breakers.

<%= inline_svg "feature-multi.svg", width: 100 %>

Multi Datacenter

Consul scales to multiple datacenters out of the box with no complicated configuration. Look up services in other datacenters, or keep the request local.

<%= inline_svg "feature-config.svg", width: 85 %>

Key/Value Storage

Flexible key/value store for dynamic configuration, feature flagging, coordination, leader election and more. Long poll for near-instant notification of configuration changes.

DNS Query Interface

Look up services using Consul's built-in DNS server. Support existing infrastructure without any code change.

admin@hashicorp.com: dig web-frontend.service.consul. ANY ; <<>> DiG 9.8.3-P1 <<>> web-frontend.service.consul. ANY ;; global options: +cmd   ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29981 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;web-frontend.service.consul. IN ANY   ;; ANSWER SECTION: web-frontend.service.consul. 0 IN A 10.0.3.83 web-frontend.service.consul. 0 IN A 10.0.1.109

Key Value Storage

Consul provides a hierarchical key/value store with a simple HTTP API. Managing configuration has never been simpler.

admin@hashicorp: consul kv put foo bar Success! Data written to: foo admin@hashicorp: consul kv get foo bar admin@hashicorp: consul kv get -detailed foo CreateIndex 5 Flags 0 Key foo LockIndex 0 ModifyIndex 5 Session - Value bar admin@hashicorp: consul kv delete foo Success! Deleted key: foo