Document the contract on Leader.nextLeader
Remove some superfluous barrier code.
Leader outcomes can be multiple, hence convert to a list.
Outcomes can be multi-threaded using java.util.concurrent structures
Dispatch outcomes at completion - part I
Report outcomes at completion - Part II. Makes future work on deadlock avoidance in Completion implementations easier.
Bugfix: Leader must handle all outcomes from previous Leader. Also note the need for a further bugfix.
Bugfix: AL must signal out of date leader and pass the current low watermark so recovery can happen.
Generalise Completion
Generic completion implementation
Revise Backend to use generic completion implementation.
Make leader construction a non-blocking call.