From 452f327d1c43c506bed9aed220c83afd3a4851c0 Mon Sep 17 00:00:00 2001 From: David Finkel Date: Thu, 24 Mar 2022 17:59:48 -0400 Subject: [PATCH] Readme: reword a paragraph so it's not misleading The description of OnElected, OnOusting, and LeaderChanged are a bit misleading because of an interstitial clause. Rewrite that paragraph and break it up into two. --- README.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7cb9bec..731e478 100644 --- a/README.md +++ b/README.md @@ -20,10 +20,15 @@ Currently, this implementation only has two implementations: The [`Config`] struct contains callbacks and tunables for the leader election "campaign". -Each process that would like to acquire leadership must register callbacks for -all three of `OnElected`, `OnOusting` and `LeaderChanged`, as well as specify -unique `LeaderID` and `HostPort`s (the latter two are used for communication, so -some use-cases may be able to ignore them) +Each "candidate" contending for leadership must register an `OnElected` callback +and a `LeaderID` (which is often a random string). Additionally, it is +recommended to specify `HostPort`, which makes it possible to leverage the +`legrpc` and have other clients using the `WatchConfig{}.Watch()` method connect +to the current leader. (it can also be useful for debugging) + +Optionally, one can specify `LeaderChanged` and `OnOusting` callbacks which are +called when a the current leader changes and an instance has lost its election, +respectively. The `TermLength` is the length of time that a leader acquires leadership for, and the length of any extension. This duration should be long enough to get