title: Avoiding split-brain, votes and quorum
body: <p>Suppose you have n processes, n > 2. You want to have agreement amongst them that one is to be active. So they need to vote amonst each other to determine which one is active.</p>
  
  <p>All processes may fail at any time, we want to have one process active if possible, but ...</p>
  
  <p>We <em>must</em> never have two active at the same time, so if they can't be sure it is better to have no-one active. (Ie. we want to avoid split brain)</p>
  
  <p>The only available communication mechanism between them is pub-sub messaging (not point to point).</p>
  
  <p>One or more databases are available, but no one database should be a single point of failure. Ie. it would be very undesirabloe if all the processes were available to work, and the were prevented from doing so by the loss of a single database. </p>
  
  <p>Design? What messages need to be published? </p>