Consul logo

Consul

A tool for service discovery, monitoring and configuration
745
708
+ 1
188

What is Consul?

Consul is a tool for service discovery and configuration. Consul is distributed, highly available, and extremely scalable.
Consul is a tool in the Open Source Service Discovery category of a tech stack.
Consul is an open source tool with 18.8K GitHub stars and 3.2K GitHub forks. Here’s a link to Consul's open source repository on GitHub

Who uses Consul?

Companies
218 companies reportedly use Consul in their tech stacks, including Slack, N26, and DigitalOcean.

Developers
500 developers on StackShare have stated that they use Consul.

Consul Integrations

Terraform, Rancher, Traefik, Nomad, and StackStorm are some of the popular tools that integrate with Consul. Here's a list of all 9 tools that integrate with Consul.

Why developers like Consul?

Here’s a list of reasons why companies and developers use Consul
Private Decisions at about Consul
Private to your company

Here are some stack decisions, common use cases and reviews by members of with Consul in their tech stack.

Docker Swarm
Docker Swarm
Spring Boot
Spring Boot
Redis
Redis
MongoDB
MongoDB
RabbitMQ
RabbitMQ
Cassandra
Cassandra
Consul
Consul
HAProxy
HAProxy
PHP
PHP

Social casino mobile application Docker Swarm Spring-Boot Redis MongoDB RabbitMQ Cassandra Consul HAProxy @Unity3D PHP

See more
Chris Hartwig
Chris Hartwig
Consul
Consul

All our services use Consul for discovery, configuration and cluster management (auto scaling, health monitoring, dynamic reconfiguration, leader elections) Consul

See more
Ismael Arenzana
Ismael Arenzana
Consul
Consul

How else do you discover microservices? ;) Consul

See more
Robert Hao
Robert Hao
Architect at Wesai · | 1 upvotes · 0 views
Consul
Consul

I used Consul as config center & service discoverer. Consul

See more
Consul
Consul

Discovery service. Some configuration is stored in consul. Consul

See more
Public Decisions about Consul

Here are some stack decisions, common use cases and reviews by companies and developers who chose Consul in their tech stack.

John Kodumal
John Kodumal
CTO at LaunchDarkly · | 16 upvotes · 543.6K views
atLaunchDarklyLaunchDarkly
Amazon RDS
Amazon RDS
PostgreSQL
PostgreSQL
TimescaleDB
TimescaleDB
Patroni
Patroni
Consul
Consul
Amazon ElastiCache
Amazon ElastiCache
Amazon EC2
Amazon EC2
Redis
Redis
Amazon Kinesis
Amazon Kinesis
Kafka
Kafka

As we've evolved or added additional infrastructure to our stack, we've biased towards managed services. Most new backing stores are Amazon RDS instances now. We do use self-managed PostgreSQL with TimescaleDB for time-series data—this is made HA with the use of Patroni and Consul.

We also use managed Amazon ElastiCache instances instead of spinning up Amazon EC2 instances to run Redis workloads, as well as shifting to Amazon Kinesis instead of Kafka.

See more
StackShare Editors
StackShare Editors
Consul
Consul
Elixir
Elixir
Erlang
Erlang

Postmates built a tool called Bazaar that helps onboard new partners and handles several routine tasks, like nightly emails to merchants alerting them about items that are out of stock.

Since they ran Bazaar across multiple instances, the team needed to avoid sending multiple emails to their partners by obtaining lock across multiple hosts. To solve their challenge, they created and open sourced ConsulMutEx, and an Elixir module for acquiring and releasing locks with Consul and other backends.

It works with Consul’s KV store, as well as other backends, including ets, Erlang’s in-memory database.

See more
StackShare Editors
StackShare Editors
Prometheus
Prometheus
Chef
Chef
Consul
Consul
Memcached
Memcached
Hack
Hack
Swift
Swift
Hadoop
Hadoop
Terraform
Terraform
Airflow
Airflow
Apache Spark
Apache Spark
Kubernetes
Kubernetes
gRPC
gRPC
HHVM (HipHop Virtual Machine)
HHVM (HipHop Virtual Machine)
Presto
Presto
Kotlin
Kotlin
Apache Thrift
Apache Thrift

Since the beginning, Cal Henderson has been the CTO of Slack. Earlier this year, he commented on a Quora question summarizing their current stack.

Apps
  • Web: a mix of JavaScript/ES6 and React.
  • Desktop: And Electron to ship it as a desktop application.
  • Android: a mix of Java and Kotlin.
  • iOS: written in a mix of Objective C and Swift.
Backend
  • The core application and the API written in PHP/Hack that runs on HHVM.
  • The data is stored in MySQL using Vitess.
  • Caching is done using Memcached and MCRouter.
  • The search service takes help from SolrCloud, with various Java services.
  • The messaging system uses WebSockets with many services in Java and Go.
  • Load balancing is done using HAproxy with Consul for configuration.
  • Most services talk to each other over gRPC,
  • Some Thrift and JSON-over-HTTP
  • Voice and video calling service was built in Elixir.
Data warehouse
  • Built using open source tools including Presto, Spark, Airflow, Hadoop and Kafka.
Etc
See more
Chris Hartwig
Chris Hartwig
Consul
Consul

All our services use Consul for discovery, configuration and cluster management (auto scaling, health monitoring, dynamic reconfiguration, leader elections) Consul

See more

Consul's Features

  • Service Discovery - Consul makes it simple for services to register themselves and to discover other services via a DNS or HTTP interface. External services such as SaaS providers can be registered as well.
  • Health Checking - Health Checking enables Consul to quickly alert operators about any issues in a cluster. The integration with service discovery prevents routing traffic to unhealthy hosts and enables service level circuit breakers.
  • Key/Value Storage - A flexible key/value store enables storing dynamic configuration, feature flagging, coordination, leader election and more. The simple HTTP API makes it easy to use anywhere.
  • Multi-Datacenter - Consul is built to be datacenter aware, and can support any number of regions without complex configuration.

Consul Alternatives & Comparisons

What are some alternatives to Consul?
etcd
etcd is a distributed key value store that provides a reliable way to store data across a cluster of machines. It’s open-source and available on GitHub. etcd gracefully handles master elections during network partitions and will tolerate machine failure, including the master.
Zookeeper
A centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. All of these kinds of services are used in some form or another by distributed applications.
SkyDNS
SkyDNS is a distributed service for announcement and discovery of services. It leverages Raft for high-availability and consensus, and utilizes DNS queries to discover available services. This is done by leveraging SRV records in DNS, with special meaning given to subdomains, priorities and weights (more info here: http://blog.gopheracademy.com/skydns).
Ambassador
Map services to arbitrary URLs in a single, declarative YAML file. Configure routes with CORS support, circuit breakers, timeouts, and more. Replace your Kubernetes ingress controller. Route gRPC, WebSockets, or HTTP.
Redis
Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
See all alternatives

Consul's Followers
708 developers follow Consul to keep up with related blogs and decisions.
 Mrityunjaya Kumar
Kerem Yaldız
Josiah Samuel
Andrzej Matejko
Tian Tan
mouhamadoul moustapha fall
Hieu Le
Alexey Skorobogatov
Naveen Kumar Pandian
Bohdan Serednytskyi