anchor.diff:  celos.serialSchedulingStrategy(3);
   ....
   
  -=== External Services
  +=== External Services Reference
   
   An external service actually executes a workflow.
   
  
positive.code: 
  Bundled with Celos comes a tool called Celos CI (see <<Celos CI Reference>> 
  as well as link:samples/quickstart[]) that automates this
  process, and can be used in conjunction with Github and a CI server
  such as link:https://jenkins-ci.org/[Jenkins] for continuous delivery
  of Celos workflows.
  
  For each group of related workflows, we have a Github repository and a
  Jenkins job that deploys the workflows on push to master using Celos
  CI.  Celos CI copies the JavaScript files to the Celos host with SFTP,
  and uploads the Oozie workflow directory to HDFS.
  
negative.code: |===
  |Name|Type|Required|Description
  |`id`|String|Yes|The identifier string for the workflow, must be unique.
  |`trigger`|<<triggers-reference,Trigger>>|Yes|The trigger that determines data availability for the workflow.
  |`schedule`|<<schedules-reference,Schedule>>|Yes|The schedule that determines the points in time at which the workflow should run.
  |`schedulingStrategy`|<<scheduling-strategies-reference,SchedulingStrategy>>|Yes|The scheduling strategy that determines when and in which order ready slots should be run.
  |`externalService`|<<external-services-reference,ExternalService>>|Yes|The external service actually responsible for executing the job.
  |`startTime`|String (ISO 8601)|No|The date when the workflow should start executing (default: "1970-01-01T00:00Z").
  |`maxRetryCount`|Number|No|The number of times a slot of this workflow should be automatically retried if it fails (default: 0).
  |`waitTimeoutSeconds`|Number|No|The number of seconds a workflow should stay waiting until it times out (default: `Integer.MAX_VALUE` (68 years)).
  |===
  