Coordination service
In a distributed system, we need to maintain configuration information, and possibly provide distributed synchronization and group services, such as group membership and leader election. A lot of work is required every time any of these services is implemented. All this is taken care of by a Coordination Service. A coordination service is responsible for centralizing all these configurations and maintenance services. A coordination service's primary job is to help multiple nodes work together seamlessly:
Here are some characteristics of a typical coordination service:
- Is replicated over a set of machines (Servers) for availability and fault-tolerance
- All machines store a copy of the data, usually in-memory (for high-throughput and low latency) and in persistent transaction logs (for fault-tolerance)
- The servers of the Coordination Service must know about each other
- A leader is elected on service startup
- Clients should connect to a single server within a coordination service...