Docs: Services first pass
Services
========
+Services are unique workflows where there is an iterative component on the server. A typical service workflow looks like the following:
+
+ 1. A client submits a new service request to the server.
+ 2. A service is created on the server and place in the service queue.
+ 3. A service iteration is called that will spawn new tasks.
+ 4. The service waits until all generated tasks are complete.
+ 5. The service repeats 3 and 4 until the service iterations are complete.
+ 6. The service cleans intermediate data, finalizes the data representation, and marks itself complete.
+
+To give an example, the TorsionDrive Service will be used. This service optimizes the geometry of a biomolecule at a number
+of frozen dihedral angles to provide an energy profile of the rotation of this dihedral bond. Here the geometry
+
+ 1. A client submits a task to scan the HOOH molecule dihedral every 90 degrees.
+ 2. The service is received by the server, and the first 0-degree dihedral geometry optimization is spawned.
+ 3. The service waits until the 0-degree task is complete, and then generate 90 and -90-degree tasks based off this 0-degree geometry.
+ 4. The service waits for the two new jobs to complete and spawns 0 and 180-degree tasks based on the 90 and - 90-degree geometries.
+ 5. The 90 and -90-degree tasks complete, the service builds its final data structure for user querying and marks itself complete.
+
+ This service technology allows the ``FractalServer`` to complete very complex workflows.
+
.. toctree::
service-torsiondrive
