Building simplicidade.org: notes, projects, and occasional rants

Consul

Consul is a swiss-army-knife for distributed systems. It includes:

  • Service discovery;
  • Failure detection;
  • Key/Value storage;
  • Distributed events, execution and locks.

One of the instalations I track more closely is from Datadog. They are reasonably big (1000+ node cluster) and they have been doing this since Consul 0.4.x, so lot’s of experience there. Also, they created a bunch of small tools that really make it simple to use Consul in production.

Articles

Presentations

Tools

  • git2consul: Node-based, keep your configurations on git and push them to Consul;
  • kvexpress: react to Consul KV changes, allows you to get stuff out of Consul, and put it in a file. Supports consul-template and friends, useful with watches. See also kvexpress - transporting configuration through Consul;
  • sifter: protection against empty/blank events. This will allow your event handlers to fire only when they really need to.