---
description: |-
  Consul is a highly available and distributed service discovery and KV
  store designed with support for the modern data center to make distributed
  systems and configuration easy.
---

<header>
  <div class="container hero">
    <div class="row">
      <div class="col-md-offset-2 col-md-8">
        <%= inline_svg "logo-hashicorp.svg", height: 120, class: "logo" %>

        <h1>Service Discovery and Configuration Made Easy</h1>

        <a class="button primary" href="/intro/index.html">Get Started</a>
        <a class="button" href="/downloads.html">Download <%= latest_version %></a>
      </div>
    </div>
  </div>
</header>

<section id="features" class="marketing pink">
  <div class="container">
    <div class="row">
      <div class="col-md-6">
        <div class="row">
          <div class="col-sm-3 feature-icon">
            <%= inline_svg "feature-discovery.svg", width: 100 %>
          </div>
          <div class="col-sm-9">
            <h2>Service Discovery</h2>
            <p>
              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.
            </p>
          </div>
        </div>
      </div>
      <div class="col-md-6">
        <div class="row">
          <div class="col-sm-3 feature-icon">
            <%= inline_svg "feature-health.svg", width: 100 %>
          </div>
          <div class="col-sm-9">
            <h2>Failure Detection</h2>
            <p>
              Pairing service discovery with health checking prevents routing
              requests to unhealthy hosts and enables services to easily provide
              circuit breakers.
            </p>
          </div>
        </div>
      </div>
    </div>

    <div class="row">
      <div class="col-md-6">
        <div class="row">
          <div class="col-sm-3 feature-icon">
            <%= inline_svg "feature-multi.svg", width: 100 %>
          </div>
          <div class="col-sm-9">
            <h2>Multi Datacenter</h2>
            <p>
              Consul scales to multiple datacenters out of the box with no
              complicated configuration. Look up services in other datacenters, or
              keep the request local.
            </p>
          </div>
        </div>
      </div>
      <div class="col-md-6">
        <div class="row">
          <div class="col-sm-3 feature-icon">
            <%= inline_svg "feature-config.svg", width: 85 %>
          </div>
          <div class="col-sm-9">
            <h2>KV Storage</h2>
            <p>
              Flexible key/value store for dynamic configuration, feature flagging,
              coordination, leader election and more. Long poll for near-instant
              notification of configuration changes.
            </p>
          </div>
        </div>
      </div>
    </div>
  </div>
</section>

<section id="simple" class="marketing">
  <div class="container">
    <div class="row">
      <div class="col-md-12">
        <h2>DNS Query Interface</h2>
        <p>
          Look up services using Consul's built-in DNS server. Support
          existing infrastructure without any code change.
        </p>
      </div>
    </div>
    <div class="row">
      <div class="col-md-12">
        <div class="terminal">
          <span class="circle"></span>
          <span class="circle"></span>
          <span class="circle"></span>
          <div class="terminal-content">
            <span><span class="text-pink">admin@hashicorp.com:</span> dig web-frontend.service.consul. ANY</span>
            <span>; &lt;&lt;&gt;&gt; DiG 9.8.3-P1 &lt;&lt;&gt;&gt; web-frontend.service.consul. ANY</span>
            <span>;; global options: +cmd</span>
            <span>&nbsp;</span>
            <span>;; Got answer:</span>
            <span>;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 29981</span>
            <span>;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0</span>
            <span> </span>
            <span>;; QUESTION SECTION:</span>
            <span>;web-frontend.service.consul. IN ANY</span>
            <span>&nbsp;</span>
            <span>;; ANSWER SECTION:</span>
            <span>web-frontend.service.consul. 0 IN  A <span class="text-pink">10.0.3.83</span></span>
            <span>web-frontend.service.consul. 0 IN  A <span class="text-pink">10.0.1.109</span></span>
          </div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col-md-12">
        <h2>Key Value Storage</h2>
        <p>
          Consul provides a hierarchical key/value store with a simple HTTP API.
          Managing configuration has never been simpler.
        </p>
      </div>
    </div>
    <div class="row">
      <div class="col-md-12">
        <div class="terminal">
          <span class="circle"></span>
          <span class="circle"></span>
          <span class="circle"></span>
          <div class="terminal-content">
            <span><span class="text-pink">admin@hashicorp:</span> consul kv put foo bar</span>
            <span>Success! Data written to: foo</span>
            <span><span class="text-pink">admin@hashicorp:</span> consul kv get foo</span>
            <span>bar</span>
            <span><span class="text-pink">admin@hashicorp:</span> consul kv get -detailed foo</span>
            <span>CreateIndex      5</span>
            <span>Flags            0</span>
            <span>Key              foo</span>
            <span>LockIndex        0</span>
            <span>ModifyIndex      5</span>
            <span>Session          -</span>
            <span>Value            bar</span>
            <span><span class="text-pink">admin@hashicorp:</span> consul kv delete foo</span>
            <span>Success! Deleted key: foo</span>
          </div>
        </div>
      </div>
    </div>
  </div>
</section>

<section id="cta" class="marketing">
  <div class="container">
    <div class="row">
      <a class="button primary" href="/intro/index.html">Read the Introduction</a>
    </div>
  </div>
</section>
