Consul is a tool that provides service discovery, configuration, and orchestration. It allows services to register themselves and discover other services via DNS or HTTP. Consul also supports health checking, multi-datacenter capabilities, and key-value storage. The core component is the Consul agent, which can run on every node in client or server mode. Servers are responsible for consensus and storing state while clients forward requests.