---
description: |-
  Serf is a decentralized solution for cluster membership, failure detection, and orchestration. Lightweight and highly available.
---

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

        <h1>Decentralized Cluster Membership, Failure Detection, and Orchestration.</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">
  <div class="container">
    <div class="row">
      <div class="col-sm-4 feature-icon">
        <%= inline_svg "gossip-protocol.svg", width: 200 %>
      </div>
      <div class="col-sm-8">
        <h2>Gossip-based Membership</h2>
        <p>
          Serf relies on an efficient and lightweight gossip protocol to
          communicate with nodes. The Serf agents periodically exchange
          messages with each other in much the same way that a zombie
          apocalypse would occur: it starts with one zombie but soon infects
          everyone. In practice, the gossip is <a
          href="/docs/internals/simulator.html">very fast and extremely
          efficient.</a>
        </p>
      </div>
    </div>
  </div>
</section>

<section id="features" class="marketing">
  <div class="container">
    <div class="row">
      <div class="col-sm-8">
        <h2>Failure Detection</h2>
        <p>
          Serf is able to quickly detect failed members and notify the rest
          of the cluster. This failure detection is built into the heart of
          the gossip protocol used by Serf. Like humans in a zombie
          apocalypse, everybody checks their peers for infection and quickly
          alerts the other living humans. Serf relies on a random probing
          technique which is proven to efficiently scale to clusters of any
          size.
        </p>
      </div>
      <div class="col-sm-4 feature-icon">
        <%= inline_svg "failure-detection.svg", width: 200 %>
      </div>
    </div>
  </div>
</section>

<section id="features" class="marketing">
  <div class="container">
    <div class="row">
      <div class="col-sm-4 feature-icon">
        <%= inline_svg "custom-event.svg", width: 200 %>
      </div>
      <div class="col-sm-8">
        <h2>Custom Events</h2>
        <p>
          In addition to managing membership, Serf can broadcast custom events
          and queries. These can be used to trigger deploys, restart
          processes, spread tales of human heroism, and anything else you may
          want. The event system is flexible and lightweight, making it easy
          for application developers and sysadmins alike to leverage.
        </p>
      </div>
    </div>
  </div>
</section>
