Service Discovery
Service discovery is a capability that allows for the dynamic lookup or querying of a producer’s interface/API details by consumers of that service. Frequently this is based on some sort of centralized key/value or database called a Service Registry, but it can be distributed like in the case of the Domain Name System (DNS). When distributed, care must be taken to handle inconsistency in the results of queries to the Service Registry.
Service discovery can be used in conjunction with configuration repositories, and secret repositories to allow for consumers to bootstrap themselves at startup or accept dynamic runtime changes to configuration.
- Allows for dynamic lookup or querying of service information
- Usually based on a database or registry
- Can be decentralized but care must be taken to handle inconsistency
- Often used in conjunction with config and secret repositories for app bootstrapping
- Common Tooling:
- DNS
- Consul
- ZooKeeper
- etcd