anchor.diff:  Some stages may fail due to transient issues, in which case they are retried (for example, Handshake may fail due to a broken connection, but a retry may succeed).
   If a retryable stage runs out of attempts, then execution is aborted, which may skip following stages as appropriate.
   
  -==== The `run` script
  +=== The `run` script
   
   Every job consists of a `bash` script that the agent composes, forks, and monitors.
   
  -This separation allows treating every job the same way, wether they are Spark or Notebook kernels, or anything else.
  +This separation allows treating every job the same way, whether they are Spark or Notebook kernels, or anything else.
   
   The structure of a `run` script is as follows:
   
  
positive.code: For example, the script could poll the clusters and see which one is the least loaded.
  Or route the job based on other attributes or metadata.
  
  ====== Agent launcher selector script
  
  Genie supports multiple agent launcher.
  For example, a launcher that starts the job on bare metal on in the same host, a launcher that starts the job inside a Docker container, a launcher that delegates the job to something like Kubernetes.
  
negative.code: 
  This section provides an overview of Genie subsystems and components.
  
  === Leader election
  
  Genie uses Zookeeper to elect an instance to be leader.
  An alternative leader election mechanism can be plugged in instead of Zookeeper.
  
  ==== Leader tasks
  
  The Genie instance elected leader of a given cluster performs different tasks:
  
  