diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
index 988f2856..2762e800 100644
--- a/CONTRIBUTING.rst
+++ b/CONTRIBUTING.rst
@@ -1,13 +1,13 @@
If you would like to contribute to the development of OpenStack,
you must follow the steps documented at:
- http://wiki.openstack.org/HowToContribute#If_you.27re_a_developer
+ http://docs.openstack.org/infra/manual/developers.html#development-workflow
Once those steps have been completed, changes to OpenStack
should be submitted for review via the Gerrit tool, following
the workflow documented at:
- http://wiki.openstack.org/GerritWorkflow
+ http://docs.openstack.org/infra/manual/developers.html#development-workflow
Pull requests submitted through GitHub will be ignored.
diff --git a/README.rst b/README.rst
index 24c6e5d9..c5e1f105 100644
--- a/README.rst
+++ b/README.rst
@@ -5,7 +5,10 @@ A library to do [jobs, tasks, flows] in a highly available, easy to understand
and declarative manner (and more!) to be used with OpenStack and other
projects.
-- More information can be found by referring to the `developer documentation`_.
+* Free software: Apache license
+* Documentation: http://docs.openstack.org/developer/taskflow
+* Source: http://git.openstack.org/cgit/openstack/taskflow
+* Bugs: http://bugs.launchpad.net/taskflow/
Join us
-------
@@ -18,32 +21,27 @@ Testing and requirements
Requirements
~~~~~~~~~~~~
-Because TaskFlow has many optional (pluggable) parts like persistence
-backends and engines, we decided to split our requirements into two
-parts: - things that are absolutely required by TaskFlow (you can't use
-TaskFlow without them) are put into ``requirements-pyN.txt`` (``N`` being the
-Python *major* version number used to install the package); - things that are
-required by some optional part of TaskFlow (you can use TaskFlow without
-them) are put into ``optional-requirements.txt``; if you want to use the
-feature in question, you should add that requirements to your project or
-environment; - as usual, things that required only for running tests are
-put into ``test-requirements.txt``.
+Because this project has many optional (pluggable) parts like persistence
+backends and engines, we decided to split our requirements into three
+parts: - things that are absolutely required (you can't use the project
+without them) are put into ``requirements-pyN.txt`` (``N`` being the
+Python *major* version number used to install the package). The requirements
+that are required by some optional part of this project (you can use the
+project without them) are put into our ``tox.ini`` file (so that we can still
+test the optional functionality works as expected). If you want to use the
+feature in question (`eventlet`_ or the worker based engine that
+uses `kombu`_ or the `sqlalchemy`_ persistence backend or jobboards which
+have an implementation built using `kazoo`_ ...), you should add
+that requirement(s) to your project or environment; - as usual, things that
+required only for running tests are put into ``test-requirements.txt``.
Tox.ini
~~~~~~~
Our ``tox.ini`` file describes several test environments that allow to test
TaskFlow with different python versions and sets of requirements installed.
-
-To generate the ``tox.ini`` file, use the ``toxgen.py`` script by first
-installing `toxgen`_ and then provide that script as input the ``tox-tmpl.ini``
-file to generate the final ``tox.ini`` file.
-
-*For example:*
-
-::
-
- $ toxgen.py -i tox-tmpl.ini -o tox.ini
+Please refer to the `tox`_ documentation to understand how to make these test
+environments work for you.
Developer documentation
-----------------------
@@ -56,5 +54,9 @@ We also have sphinx documentation in ``docs/source``.
$ python setup.py build_sphinx
-.. _toxgen: https://pypi.python.org/pypi/toxgen/
+.. _kazoo: http://kazoo.readthedocs.org/
+.. _sqlalchemy: http://www.sqlalchemy.org/
+.. _kombu: http://kombu.readthedocs.org/
+.. _eventlet: http://eventlet.net/
+.. _tox: http://tox.testrun.org/
.. _developer documentation: http://docs.openstack.org/developer/taskflow/
diff --git a/doc/diagrams/core.graffle b/doc/diagrams/core.graffle
deleted file mode 100644
index a570fe59..00000000
--- a/doc/diagrams/core.graffle
+++ /dev/null
@@ -1,8023 +0,0 @@
-
-
-
-
- ActiveLayerIndex
- 0
- ApplicationVersion
-
- com.omnigroup.OmniGrafflePro
- 139.18.0.187838
-
- AutoAdjust
-
- BackgroundGraphic
-
- Bounds
- {{0, 0}, {1152, 2199}}
- Class
- SolidGraphic
- ID
- 2
- Style
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
-
- BaseZoom
- 0
- CanvasOrigin
- {0, 0}
- ColumnAlign
- 1
- ColumnSpacing
- 36
- CreationDate
- 2014-07-08 20:47:01 +0000
- Creator
- Joshua Harlow
- DisplayScale
- 1 0/72 in = 1.0000 in
- ExportShapes
-
-
- InspectorGroup
- 255
- ShapeImageRect
- {{2, 2}, {22, 22}}
- ShapeName
- 33C70F48-B008-4466-BD81-E84D73C055CA-438-0000056AF6035FFB
- ShouldExport
- YES
- StrokePath
-
- elements
-
-
- element
- MOVETO
- point
- {0.40652500000000003, 0.088786000000000004}
-
-
- control1
- {0.39769700000000002, -0.059801}
- control2
- {0.312282, -0.20657200000000001}
- element
- CURVETO
- point
- {0.15027599999999999, -0.32002000000000003}
-
-
- control1
- {-0.028644599999999999, -0.44531500000000002}
- control2
- {-0.26560600000000001, -0.50519099999999995}
- element
- CURVETO
- point
- {-0.5, -0.49964799999999998}
-
-
- element
- LINETO
- point
- {-0.5, -0.25638699999999998}
-
-
- control1
- {-0.358902, -0.262291}
- control2
- {-0.21507999999999999, -0.22622900000000001}
- element
- CURVETO
- point
- {-0.10728, -0.148201}
-
-
- control1
- {-0.0160971, -0.082201999999999997}
- control2
- {0.033605599999999999, 0.0024510600000000001}
- element
- CURVETO
- point
- {0.041826200000000001, 0.088786000000000004}
-
-
- element
- LINETO
- point
- {-0.043046000000000001, 0.088786000000000004}
-
-
- element
- LINETO
- point
- {0.22847700000000001, 0.5}
-
-
- element
- LINETO
- point
- {0.5, 0.088786000000000004}
-
-
- element
- LINETO
- point
- {0.40652500000000003, 0.088786000000000004}
-
-
- element
- CLOSE
-
-
- element
- MOVETO
- point
- {0.40652500000000003, 0.088786000000000004}
-
-
-
- TextBounds
- {{0, 0}, {1, 1}}
-
-
- GraphDocumentVersion
- 8
- GraphicsList
-
-
- Class
- LineGraphic
- ID
- 1169
- Points
-
- {148.34850886899716, 1297.778564453125}
- {148.34850886899716, 1565.8355233257191}
-
- Style
-
- stroke
-
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- Pattern
- 1
- TailArrow
- 0
-
-
-
-
- Bounds
- {{108.29570600619962, 1459.9910998882619}, {30, 14}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- FontInfo
-
- Font
- Helvetica
- Size
- 12
-
- ID
- 1167
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\i\fs24 \cf0 Emits}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 1166
- Points
-
- {172.01007495190493, 1463.7899284362793}
- {108.29570625246291, 1489.3205401648188}
-
- Style
-
- stroke
-
- HeadArrow
- FilledArrow
- Legacy
-
- LineType
- 1
- Pattern
- 1
- TailArrow
- 0
-
-
-
-
- Bounds
- {{28, 1489.3205331673671}, {108.00000616531918, 60.376010894775391}}
- Class
- ShapedGraphic
- ID
- 1165
- Shape
- Cloud
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Board\
-Notifications}
- VerticalPad
- 0
-
-
-
- Class
- LineGraphic
- ID
- 1161
- Points
-
- {16.938813712387287, 1214.6957778930664}
- {550.61227271339396, 1214.6957778930664}
-
- Style
-
- stroke
-
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- Pattern
- 1
- TailArrow
- 0
-
-
-
-
- Class
- Group
- Graphics
-
-
- Bounds
- {{177.05329513549805, 1254.1663719071589}, {82, 22}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 1163
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\i\b\fs36 \cf0 (optional)}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Bounds
- {{56.053289698640896, 1231.7786193741999}, {116, 66}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- FontInfo
-
- Font
- Helvetica-BoldOblique
- Size
- 18
-
- ID
- 1164
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\i\b\fs36 \cf0 Posting & \
-Consumption\
-Phase}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- ID
- 1162
-
-
- Bounds
- {{560.82414838901218, 1484.9621440334549}, {71, 28}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- FontInfo
-
- Font
- Helvetica
- Size
- 12
-
- ID
- 1159
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\i\fs24 \cf0 Consumption\
-Loop}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- Group
- Graphics
-
-
- Bounds
- {{521.16725664085266, 1494.1828820625792}, {27.016406012875592, 38.542124503311257}}
- Class
- ShapedGraphic
- ID
- 1155
- Magnets
-
- {0.15027599999999999, -0.32002000000000003}
- {-0.5, -0.49964799999999998}
- {-0.5, -0.25638699999999998}
- {-0.10728, -0.148201}
- {0.041826500000000003, 0.088786000000000004}
- {-0.043045800000000002, 0.088786000000000004}
- {0.22847700000000001, 0.5}
- {0.5, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
-
- Rotation
- 90
- Shape
- Bezier
- ShapeData
-
- UnitPoints
-
- {0.406219, 0.101163}
- {0.39736100000000002, -0.042958700000000002}
- {0.31166700000000003, -0.185311}
- {0.149117, -0.29534500000000002}
- {-0.030395499999999999, -0.41686299999999998}
- {-0.261517, -0.50514099999999995}
- {-0.49668800000000002, -0.49976700000000002}
- {-0.496693, -0.49976500000000001}
- {-0.062913899999999995, -0.36058899999999999}
- {-0.062913899999999995, -0.36058899999999999}
- {-0.062918699999999994, -0.36058899999999999}
- {-0.5, -0.21609700000000001}
- {-0.5, -0.21609600000000001}
- {-0.35843000000000003, -0.22182399999999999}
- {-0.217449, -0.204378}
- {-0.10928400000000001, -0.12870000000000001}
- {-0.017806099999999998, -0.064687300000000003}
- {0.032062500000000001, 0.0174179}
- {0.040309900000000003, 0.101163}
- {0.040309900000000003, 0.101163}
- {-0.044847499999999998, 0.101163}
- {-0.044847499999999998, 0.101163}
- {-0.044847499999999998, 0.101163}
- {0.22758200000000001, 0.5}
- {0.22758200000000001, 0.5}
- {0.22758200000000001, 0.5}
- {0.5, 0.101163}
- {0.5, 0.101163}
- {0.5, 0.101163}
- {0.406219, 0.101163}
-
-
-
-
- Bounds
- {{501.82414838901218, 1486.2594805049087}, {26.999999999999996, 38.288223134554855}}
- Class
- ShapedGraphic
- ID
- 1156
- Magnets
-
- {0.15027599999999999, -0.32002000000000003}
- {-0.5, -0.49964799999999998}
- {-0.5, -0.25638699999999998}
- {-0.10728, -0.148201}
- {0.041826500000000003, 0.088786000000000004}
- {-0.043045800000000002, 0.088786000000000004}
- {0.22847700000000001, 0.5}
- {0.5, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
-
- Rotation
- 180
- Shape
- 33C70F48-B008-4466-BD81-E84D73C055CA-438-0000056AF6035FFB
-
-
- Bounds
- {{509.94240895873349, 1465.3378642343948}, {27.016406012875589, 38.264972185430459}}
- Class
- ShapedGraphic
- ID
- 1157
- Magnets
-
- {0.15027599999999999, -0.32002000000000003}
- {-0.5, -0.49964799999999998}
- {-0.5, -0.25638699999999998}
- {-0.10728, -0.148201}
- {0.041826500000000003, 0.088786000000000004}
- {-0.043045800000000002, 0.088786000000000004}
- {0.22847700000000001, 0.5}
- {0.5, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
-
- Rotation
- 270
- Shape
- 33C70F48-B008-4466-BD81-E84D73C055CA-438-0000056AF6035FFB
-
-
- Bounds
- {{528.82414838901218, 1473.3774855848621}, {27.000000000000004, 38.288223134554862}}
- Class
- ShapedGraphic
- ID
- 1158
- Magnets
-
- {0.15027599999999999, -0.32002000000000003}
- {-0.5, -0.49964799999999998}
- {-0.5, -0.25638699999999998}
- {-0.10728, -0.148201}
- {0.041826500000000003, 0.088786000000000004}
- {-0.043045800000000002, 0.088786000000000004}
- {0.22847700000000001, 0.5}
- {0.5, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
-
- Shape
- 33C70F48-B008-4466-BD81-E84D73C055CA-438-0000056AF6035FFB
-
-
- ID
- 1154
-
-
- Class
- Group
- Graphics
-
-
- Bounds
- {{302.01802465549162, 1480.6049629105769}, {37, 28}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 1150
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Align
- 0
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
-
-\f0\fs24 \cf0 - wait()\
-....}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Bounds
- {{230.34967062106779, 1480.6049629105769}, {63, 42}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 1151
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Align
- 0
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
-
-\f0\fs24 \cf0 - abandon()\
-- iterjobs()\
-}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Bounds
- {{177.68130514255216, 1480.6049629105769}, {44, 42}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 1152
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Align
- 0
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
-
-\f0\fs24 \cf0 - post()\
-- claim()\
-}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Bounds
- {{170.82414838901212, 1475.3192573441706}, {175.99597549438477, 38.571445465087891}}
- Class
- ShapedGraphic
- ID
- 1153
- Shape
- Rectangle
- Style
-
- stroke
-
- Pattern
- 1
-
-
-
-
- ID
- 1149
-
-
- Class
- LineGraphic
- ID
- 1148
- Points
-
- {290.10982343784025, 1540.438820465416}
- {289.2121722540532, 1513.7478166474543}
-
- Style
-
- stroke
-
- HeadArrow
- UMLInheritance
- Legacy
-
- LineType
- 1
- TailArrow
- 0
-
-
- Tail
-
- ID
- 1147
-
-
-
- Bounds
- {{245.10982343784025, 1540.438820465416}, {90, 36}}
- Class
- ShapedGraphic
- ID
- 1147
- Magnets
-
- {0, 1}
- {0, -1}
- {1, 0}
- {-1, 0}
-
- Shape
- Rectangle
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
-
-\f0\i\b\fs24 \cf0 Zookeeper\
-Jobboard}
- VerticalPad
- 0
-
-
-
- Bounds
- {{435.40182134738615, 1470.9621696472168}, {58, 56}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- FontInfo
-
- Font
- Helvetica
- Size
- 12
-
- ID
- 1146
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Align
- 0
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
-
-\f0\i\fs24 \cf0 - Claim job\
-- Load job\
-- Translate\
-- Activate}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- Group
- Graphics
-
-
- Class
- Group
- Graphics
-
-
- Bounds
- {{539.9018270694321, 1424.6444211854182}, {33, 12}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 1117
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs20 \cf0 Worker}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- Group
- Graphics
-
-
- Bounds
- {{530.40181944003757, 1370.6049924744807}, {52, 72}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 1119
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs20 \cf0 Specialized\
-\
-\
-\
-\
-}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- Group
- Graphics
-
-
- Bounds
- {{545.72859289858161, 1420.3446371019186}, {19.299808229718884, 19.299808879032174}}
- Class
- ShapedGraphic
- ID
- 1121
- Shape
- Rectangle
- Style
-
- fill
-
- Color
-
- b
- 0.4
- g
- 1
- r
- 1
-
- Draws
- NO
- FillType
- 2
- GradientAngle
- 90
- GradientColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- MiddleColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- TrippleBlend
- YES
-
- shadow
-
- Beneath
- YES
- Draws
- NO
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- Draws
- NO
- Width
- 1.5
-
-
- VFlip
- YES
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 1122
- Points
-
- {545.72859289858161, 1402.9748103444847}
- {565.02840112830063, 1402.9748103444847}
- {565.02840112830063, 1402.9748103444847}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Class
- LineGraphic
- ID
- 1123
- Points
-
- {555.37849701344112, 1410.6947336363717}
- {545.7285925739252, 1420.3446377512312}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Class
- LineGraphic
- ID
- 1124
- Points
-
- {555.37849701344112, 1410.6947336363719}
- {565.02840112830063, 1420.7306576742712}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Class
- LineGraphic
- ID
- 1125
- Points
-
- {555.37849701344112, 1397.1848678755687}
- {555.37849701344112, 1410.6947352596553}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Bounds
- {{549.58855454452544, 1385.6049829377375}, {11.57988428851805, 11.57988428851805}}
- Class
- ShapedGraphic
- ID
- 1126
- Shape
- Circle
- Style
-
- fill
-
- Color
-
- b
- 0.4
- g
- 1
- r
- 1
-
- Draws
- NO
- FillType
- 2
- GradientAngle
- 90
- GradientColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- MiddleColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- TrippleBlend
- YES
-
- shadow
-
- Beneath
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- Width
- 1.5
-
-
-
-
- ID
- 1120
-
-
- ID
- 1118
-
-
- ID
- 1116
-
-
- Class
- Group
- Graphics
-
-
- Bounds
- {{492.40181944003757, 1394.5655408753596}, {47, 12}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 1128
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs20 \cf0 Conductor}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- Group
- Graphics
-
-
- Bounds
- {{505.22859289858167, 1444.305185502797}, {19.299808229718884, 19.299808879032174}}
- Class
- ShapedGraphic
- ID
- 1130
- Shape
- Rectangle
- Style
-
- fill
-
- Color
-
- b
- 0.4
- g
- 1
- r
- 1
-
- Draws
- NO
- FillType
- 2
- GradientAngle
- 90
- GradientColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- MiddleColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- TrippleBlend
- YES
-
- shadow
-
- Beneath
- YES
- Draws
- NO
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- Draws
- NO
- Width
- 1.5
-
-
- VFlip
- YES
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 1131
- Points
-
- {505.22859289858161, 1426.9353587453638}
- {524.52840112830063, 1426.9353587453638}
- {524.52840112830063, 1426.9353587453638}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Class
- LineGraphic
- ID
- 1132
- Points
-
- {514.87849701344112, 1434.6552820372506}
- {505.2285925739252, 1444.3051861521101}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Class
- LineGraphic
- ID
- 1133
- Points
-
- {514.87849701344112, 1434.6552820372508}
- {524.52840112830063, 1444.6912060751501}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Class
- LineGraphic
- ID
- 1134
- Points
-
- {514.87849701344112, 1421.1454162764476}
- {514.87849701344112, 1434.6552836605342}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Bounds
- {{509.08855454452544, 1409.5655313386164}, {11.57988428851805, 11.57988428851805}}
- Class
- ShapedGraphic
- ID
- 1135
- Shape
- Circle
- Style
-
- fill
-
- Color
-
- b
- 0.4
- g
- 1
- r
- 1
-
- Draws
- NO
- FillType
- 2
- GradientAngle
- 90
- GradientColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- MiddleColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- TrippleBlend
- YES
-
- shadow
-
- Beneath
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- Width
- 1.5
-
-
-
-
- ID
- 1129
-
-
- ID
- 1127
-
-
- Class
- Group
- Graphics
-
-
- Bounds
- {{454.40181944003757, 1373.5655408753596}, {47, 12}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 1137
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs20 \cf0 Conductor}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- Group
- Graphics
-
-
- Bounds
- {{467.22859289858161, 1423.305185502797}, {19.299808229718884, 19.299808879032174}}
- Class
- ShapedGraphic
- ID
- 1139
- Shape
- Rectangle
- Style
-
- fill
-
- Color
-
- b
- 0.4
- g
- 1
- r
- 1
-
- Draws
- NO
- FillType
- 2
- GradientAngle
- 90
- GradientColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- MiddleColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- TrippleBlend
- YES
-
- shadow
-
- Beneath
- YES
- Draws
- NO
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- Draws
- NO
- Width
- 1.5
-
-
- VFlip
- YES
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 1140
- Points
-
- {467.22859289858161, 1405.9353587453638}
- {486.52840112830063, 1405.9353587453638}
- {486.52840112830063, 1405.9353587453638}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Class
- LineGraphic
- ID
- 1141
- Points
-
- {476.87849701344112, 1413.6552820372506}
- {467.2285925739252, 1423.3051861521101}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Class
- LineGraphic
- ID
- 1142
- Points
-
- {476.87849701344112, 1413.6552820372508}
- {486.52840112830063, 1423.6912060751501}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Class
- LineGraphic
- ID
- 1143
- Points
-
- {476.87849701344112, 1400.1454162764476}
- {476.87849701344112, 1413.6552836605342}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Bounds
- {{471.08855454452544, 1388.5655313386164}, {11.57988428851805, 11.57988428851805}}
- Class
- ShapedGraphic
- ID
- 1144
- Shape
- Circle
- Style
-
- fill
-
- Color
-
- b
- 0.4
- g
- 1
- r
- 1
-
- Draws
- NO
- FillType
- 2
- GradientAngle
- 90
- GradientColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- MiddleColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- TrippleBlend
- YES
-
- shadow
-
- Beneath
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- Width
- 1.5
-
-
-
-
- ID
- 1138
-
-
- ID
- 1136
-
-
- Bounds
- {{428.40181944003757, 1349.4199200524531}, {175.99597549438477, 117.33065032958984}}
- Class
- ShapedGraphic
- ID
- 1145
- Shape
- Cloud
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\i\fs24 \cf0 Workers}
- VerticalPad
- 0
-
- TextPlacement
- 0
- TextRelativeArea
- {{0.14999999999999999, -0.15000001192092893}, {0.69999999999999996, 0.69999999999999996}}
-
-
- ID
- 1115
-
-
- Class
- LineGraphic
- Head
-
- ID
- 968
-
- ID
- 1065
- Points
-
- {440.82414838901212, 1414.6049619569026}
- {387.27826521030119, 1414.6049619569026}
-
- Style
-
- stroke
-
- HeadArrow
- FilledArrow
- Legacy
-
- LineType
- 1
- TailArrow
- FilledArrow
-
-
-
-
- Bounds
- {{93.246466708152184, 1417.5425142326339}, {50, 42}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 996
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Receives\
-Job\
-}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Bounds
- {{91.82415492531527, 1366.6049531974777}, {50, 42}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 995
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Posts\
-Workflow\
-}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 994
- Points
-
- {110.33829994431926, 1405.0729529199277}
- {164.08388984446532, 1405.5}
-
- Style
-
- stroke
-
- HeadArrow
- FilledArrow
- Legacy
-
- LineType
- 1
- TailArrow
- FilledArrow
-
-
-
-
- Class
- Group
- Graphics
-
-
- Bounds
- {{50.1444289081536, 1351.4198986563467}, {35, 28}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 986
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 GillSans;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Library\
-User}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- Group
- Graphics
-
-
- Bounds
- {{53.471203982158727, 1435.4435211691641}, {28.346457481384277, 28.346458435058594}}
- Class
- ShapedGraphic
- ID
- 988
- Shape
- Rectangle
- Style
-
- fill
-
- Color
-
- b
- 0.4
- g
- 1
- r
- 1
-
- Draws
- NO
- FillType
- 2
- GradientAngle
- 90
- GradientColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- MiddleColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- TrippleBlend
- YES
-
- shadow
-
- Beneath
- YES
- Draws
- NO
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- Draws
- NO
- Width
- 1.5
-
-
- VFlip
- YES
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 989
- Points
-
- {53.471203982158727, 1409.9317103895926}
- {81.817661463543004, 1409.9317103895926}
- {81.817661463543004, 1409.9317103895926}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Class
- LineGraphic
- ID
- 990
- Points
-
- {67.644432722850866, 1421.2702933821463}
- {53.471203505321569, 1435.4435221228384}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Class
- LineGraphic
- ID
- 991
- Points
-
- {67.644432722850866, 1421.2702933821463}
- {81.817661463543004, 1436.0104861675161}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Class
- LineGraphic
- ID
- 992
- Points
-
- {67.644432722850866, 1401.4277731451773}
- {67.644432722850866, 1421.2702957663321}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Bounds
- {{59.140495478435582, 1384.4198986563467}, {17.00787353515625, 17.00787353515625}}
- Class
- ShapedGraphic
- ID
- 993
- Shape
- Circle
- Style
-
- fill
-
- Color
-
- b
- 0.4
- g
- 1
- r
- 1
-
- Draws
- NO
- FillType
- 2
- GradientAngle
- 90
- GradientColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- MiddleColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- TrippleBlend
- YES
-
- shadow
-
- Beneath
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- Width
- 1.5
-
-
-
-
- ID
- 987
-
-
- ID
- 1001
-
-
- Bounds
- {{237.44151899448087, 1414.6049619569026}, {54, 36}}
- Class
- ShapedGraphic
- ID
- 961
- Shape
- Rectangle
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Job}
-
-
-
- Bounds
- {{228.44151899448087, 1405.6049619569026}, {54, 36}}
- Class
- ShapedGraphic
- ID
- 1000
- Shape
- Rectangle
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Job1}
-
-
-
- Class
- Group
- Graphics
-
-
- Class
- LineGraphic
- Head
-
- ID
- 968
-
- ID
- 967
- Points
-
- {273.94151899473252, 1414.6017734596319}
- {332.27826523991331, 1414.5950095848621}
-
- Style
-
- stroke
-
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- Pattern
- 1
- TailArrow
- FilledArrow
-
-
- Tail
-
- ID
- 969
-
-
-
- Bounds
- {{332.77826521030119, 1396.6049619569026}, {54, 36}}
- Class
- ShapedGraphic
- ID
- 968
- Shape
- Rectangle
- Style
-
- stroke
-
- Pattern
- 1
-
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Owner}
-
-
-
- Bounds
- {{219.44151899448087, 1396.6049619569026}, {54, 36}}
- Class
- ShapedGraphic
- ID
- 969
- Shape
- Rectangle
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Job1}
-
-
-
- ID
- 966
-
-
- Class
- Group
- Graphics
-
-
- Class
- LineGraphic
- Head
-
- ID
- 972
-
- ID
- 971
- Points
-
- {264.94151899473252, 1405.6017734596319}
- {323.27826523991331, 1405.5950095848621}
-
- Style
-
- stroke
-
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- Pattern
- 1
- TailArrow
- FilledArrow
-
-
- Tail
-
- ID
- 973
-
-
-
- Bounds
- {{323.77826521030119, 1387.6049619569026}, {54, 36}}
- Class
- ShapedGraphic
- ID
- 972
- Shape
- Rectangle
- Style
-
- stroke
-
- Pattern
- 1
-
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Owner}
-
-
-
- Bounds
- {{210.44151899448087, 1387.6049619569026}, {54, 36}}
- Class
- ShapedGraphic
- ID
- 973
- Shape
- Rectangle
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Job1}
-
-
-
- ID
- 970
-
-
- Class
- Group
- Graphics
-
-
- Class
- LineGraphic
- Head
-
- ID
- 976
-
- ID
- 975
- Points
-
- {255.94151899473252, 1396.6017734596319}
- {314.27826523991337, 1396.5950095848621}
-
- Style
-
- stroke
-
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- Pattern
- 1
- TailArrow
- FilledArrow
-
-
- Tail
-
- ID
- 977
-
-
-
- Bounds
- {{314.77826521030119, 1378.6049619569026}, {54, 36}}
- Class
- ShapedGraphic
- ID
- 976
- Shape
- Rectangle
- Style
-
- stroke
-
- Pattern
- 1
-
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Owner}
-
-
-
- Bounds
- {{201.44151899448087, 1378.6049619569026}, {54, 36}}
- Class
- ShapedGraphic
- ID
- 977
- Shape
- Rectangle
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Job1}
-
-
-
- ID
- 974
-
-
- Class
- Group
- Graphics
-
-
- Class
- LineGraphic
- Head
-
- ID
- 980
-
- ID
- 979
- Points
-
- {246.94151899473252, 1387.6017734596319}
- {305.27826523991337, 1387.5950095848621}
-
- Style
-
- stroke
-
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- Pattern
- 1
- TailArrow
- FilledArrow
-
-
- Tail
-
- ID
- 981
-
-
-
- Bounds
- {{305.77826521030119, 1369.6049619569026}, {54, 36}}
- Class
- ShapedGraphic
- ID
- 980
- Shape
- Rectangle
- Style
-
- stroke
-
- Pattern
- 1
-
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Owner}
-
-
-
- Bounds
- {{192.44151899448087, 1369.6049619569026}, {54, 36}}
- Class
- ShapedGraphic
- ID
- 981
- Shape
- Rectangle
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Job1}
-
-
-
- ID
- 978
-
-
- Bounds
- {{170.82414838901212, 1345.6049695862971}, {236.99999999999997, 168}}
- Class
- ShapedGraphic
- FitText
- Vertical
- Flow
- Resize
- ID
- 983
- Shape
- Rectangle
- Style
-
- fill
-
- GradientCenter
- {-0.29411799999999999, -0.264706}
-
-
- Text
-
- Align
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
-
-\f0\fs24 \cf0 \
-\
-\
-\
-\
-\
-\
-\
-\
-\
-\
-}
- VerticalPad
- 0
-
- TextPlacement
- 0
-
-
- Bounds
- {{170.82414838901212, 1331.6049695862971}, {236.99999999999997, 14}}
- Class
- ShapedGraphic
- FitText
- Vertical
- Flow
- Resize
- ID
- 984
- Shape
- Rectangle
- Style
-
- fill
-
- GradientCenter
- {-0.29411799999999999, -0.264706}
-
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
-
-\f0\i\b\fs24 \cf0 Jobboard}
- VerticalPad
- 0
-
- TextPlacement
- 0
-
-
- Class
- LineGraphic
- ID
- 861
- Points
-
- {470.1300977351811, 156.79728666398489}
- {409.22449458705552, 177.09915438002673}
-
- Style
-
- stroke
-
- HeadArrow
- FilledArrow
- Legacy
-
- LineType
- 1
- Pattern
- 1
- TailArrow
- 0
-
-
-
-
- Bounds
- {{476.1300977351811, 138.79728666398486}, {41, 28}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- FontInfo
-
- Font
- Helvetica
- Size
- 12
-
- ID
- 860
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\i\fs24 \cf0 Nested\
-subflow}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 859
- Points
-
- {382.65871206690008, 221.8325309753418}
- {382.65871206690008, 249.83253047325724}
-
- Style
-
- stroke
-
- HeadArrow
- FilledArrow
- Legacy
-
- LineType
- 1
- TailArrow
- 0
-
-
-
-
- Bounds
- {{359.27167431166708, 255.11224365234375}, {47, 47}}
- Class
- ShapedGraphic
- HFlip
- YES
- ID
- 855
- Shape
- Circle
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Flow}
- VerticalPad
- 0
-
-
-
- Bounds
- {{355.77167171239853, 251.61224365234375}, {54, 54}}
- Class
- ShapedGraphic
- HFlip
- YES
- ID
- 856
- Shape
- Circle
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Retry}
- VerticalPad
- 0
-
- TextPlacement
- 0
- TextRelativeArea
- {{0.099999999999999978, 1.0000000238418578}, {0.80000000000000004, 0.69999999999999996}}
- TextRotation
- 305.1478271484375
-
-
- Bounds
- {{290.73464965820312, 1032.5300847720423}, {27, 28}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- FontInfo
-
- Font
- Helvetica
- Size
- 12
-
- ID
- 839
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\i\fs24 \cf0 Run\
-Loop}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 838
- Points
-
- {16.938772201538086, 784.51440811157227}
- {550.61223120254476, 784.51440811157227}
-
- Style
-
- stroke
-
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- Pattern
- 1
- TailArrow
- 0
-
-
-
-
- Bounds
- {{478.53062537152402, 1122.9011524936079}, {63.714366912841797, 31.333333333333332}}
- Class
- ShapedGraphic
- ID
- 837
- Shape
- Rectangle
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs20 \cf0 Completer}
- VerticalPad
- 0
-
-
-
- Bounds
- {{478.53062537152402, 1079.8705891391157}, {63.714366912841797, 31.333333333333332}}
- Class
- ShapedGraphic
- ID
- 836
- Shape
- Rectangle
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs20 \cf0 Scheduler}
- VerticalPad
- 0
-
-
-
- Bounds
- {{372.92606544494629, 1123.8570556640625}, {61, 56}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 834
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Align
- 0
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
-
-\f0\fs24 \cf0 - run()\
-- suspend()\
-...\
-}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Bounds
- {{390.8163413254731, 1078.5120424153899}, {63.714366912841797, 31.333333333333332}}
- Class
- ShapedGraphic
- ID
- 832
- Shape
- Rectangle
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs20 \cf0 Compiler}
- VerticalPad
- 0
-
-
-
- Bounds
- {{209.22450065612793, 852.73572444915771}, {80, 28}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- FontInfo
-
- Font
- Helvetica
- Size
- 12
-
- ID
- 831
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\i\fs24 \cf0 States, results,\
-progress...}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Bounds
- {{195.91839599609375, 1080.2736424160523}, {156, 70}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- FontInfo
-
- Font
- Helvetica
- Size
- 12
-
- ID
- 828
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Align
- 0
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural
-
-\f0\i\fs24 \cf0 - PENDING -> RUNNING\
-- RUNNING -> SUCCESS\
-- SUSPENDED -> RUNNING\
-- FAILURE -> REVERTING\
-....}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Bounds
- {{179.01475524902344, 1044.5300637912073}, {30, 14}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- FontInfo
-
- Font
- Helvetica
- Size
- 12
-
- ID
- 827
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\i\fs24 \cf0 Emits}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 826
- Points
-
- {228.92846501504124, 1022.9387556204747}
- {165.21409631559922, 1048.4693673490142}
-
- Style
-
- stroke
-
- HeadArrow
- FilledArrow
- Legacy
-
- LineType
- 1
- Pattern
- 1
- TailArrow
- 0
-
-
-
-
- Bounds
- {{84.918390063136314, 1048.4693603515625}, {108.00000616531918, 60.376010894775391}}
- Class
- ShapedGraphic
- ID
- 9
- Shape
- Cloud
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 State\
-Transition\
-Notifications}
- VerticalPad
- 0
-
-
-
- Class
- Group
- Graphics
-
-
- Bounds
- {{253.38389312817009, 1036.7868945785101}, {27.016406012875592, 38.542124503311257}}
- Class
- ShapedGraphic
- ID
- 93
- Magnets
-
- {0.15027599999999999, -0.32002000000000003}
- {-0.5, -0.49964799999999998}
- {-0.5, -0.25638699999999998}
- {-0.10728, -0.148201}
- {0.041826500000000003, 0.088786000000000004}
- {-0.043045800000000002, 0.088786000000000004}
- {0.22847700000000001, 0.5}
- {0.5, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
-
- Rotation
- 90
- Shape
- Bezier
- ShapeData
-
- UnitPoints
-
- {0.406219, 0.101163}
- {0.39736100000000002, -0.042958700000000002}
- {0.31166700000000003, -0.185311}
- {0.149117, -0.29534500000000002}
- {-0.030395499999999999, -0.41686299999999998}
- {-0.261517, -0.50514099999999995}
- {-0.49668800000000002, -0.49976700000000002}
- {-0.496693, -0.49976500000000001}
- {-0.062913899999999995, -0.36058899999999999}
- {-0.062913899999999995, -0.36058899999999999}
- {-0.062918699999999994, -0.36058899999999999}
- {-0.5, -0.21609700000000001}
- {-0.5, -0.21609600000000001}
- {-0.35843000000000003, -0.22182399999999999}
- {-0.217449, -0.204378}
- {-0.10928400000000001, -0.12870000000000001}
- {-0.017806099999999998, -0.064687300000000003}
- {0.032062500000000001, 0.0174179}
- {0.040309900000000003, 0.101163}
- {0.040309900000000003, 0.101163}
- {-0.044847499999999998, 0.101163}
- {-0.044847499999999998, 0.101163}
- {-0.044847499999999998, 0.101163}
- {0.22758200000000001, 0.5}
- {0.22758200000000001, 0.5}
- {0.22758200000000001, 0.5}
- {0.5, 0.101163}
- {0.5, 0.101163}
- {0.5, 0.101163}
- {0.406219, 0.101163}
-
-
-
-
- Bounds
- {{234.04078487632972, 1028.8634930208395}, {26.999999999999996, 38.288223134554855}}
- Class
- ShapedGraphic
- ID
- 94
- Magnets
-
- {0.15027599999999999, -0.32002000000000003}
- {-0.5, -0.49964799999999998}
- {-0.5, -0.25638699999999998}
- {-0.10728, -0.148201}
- {0.041826500000000003, 0.088786000000000004}
- {-0.043045800000000002, 0.088786000000000004}
- {0.22847700000000001, 0.5}
- {0.5, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
-
- Rotation
- 180
- Shape
- 33C70F48-B008-4466-BD81-E84D73C055CA-438-0000056AF6035FFB
-
-
- Bounds
- {{242.15904544605092, 1007.9418767503257}, {27.016406012875589, 38.264972185430459}}
- Class
- ShapedGraphic
- ID
- 95
- Magnets
-
- {0.15027599999999999, -0.32002000000000003}
- {-0.5, -0.49964799999999998}
- {-0.5, -0.25638699999999998}
- {-0.10728, -0.148201}
- {0.041826500000000003, 0.088786000000000004}
- {-0.043045800000000002, 0.088786000000000004}
- {0.22847700000000001, 0.5}
- {0.5, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
-
- Rotation
- 270
- Shape
- 33C70F48-B008-4466-BD81-E84D73C055CA-438-0000056AF6035FFB
-
-
- Bounds
- {{261.04078487632967, 1015.981498100793}, {27.000000000000004, 38.288223134554862}}
- Class
- ShapedGraphic
- ID
- 96
- Magnets
-
- {0.15027599999999999, -0.32002000000000003}
- {-0.5, -0.49964799999999998}
- {-0.5, -0.25638699999999998}
- {-0.10728, -0.148201}
- {0.041826500000000003, 0.088786000000000004}
- {-0.043045800000000002, 0.088786000000000004}
- {0.22847700000000001, 0.5}
- {0.5, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
- {0.40652500000000003, 0.088786000000000004}
-
- Shape
- 33C70F48-B008-4466-BD81-E84D73C055CA-438-0000056AF6035FFB
-
-
- ID
- 92
-
-
- Bounds
- {{396.52035685550777, 974.46163584936892}, {142, 14}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- FontInfo
-
- Font
- Helvetica-Bold
- Size
- 12
-
- ID
- 457
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\i\b\fs24 \cf0 ActionEngine (one impl.)}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Bounds
- {{390.8163413254731, 1038.2328676107024}, {63.714366912841797, 31.333333333333332}}
- Class
- ShapedGraphic
- ID
- 450
- Shape
- Rectangle
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs20 \cf0 Runner}
- VerticalPad
- 0
-
-
-
- Bounds
- {{478.53062537152402, 1038.2328900119185}, {63.714366912841797, 31.333333333333332}}
- Class
- ShapedGraphic
- ID
- 449
- Shape
- Rectangle
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs20 \cf0 Runtime}
- VerticalPad
- 0
-
-
-
- Bounds
- {{478.5306334878843, 994.19207080251738}, {63.714366912841797, 31.333333333333332}}
- Class
- ShapedGraphic
- ID
- 447
- Shape
- Rectangle
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs20 \cf0 Executor}
- VerticalPad
- 0
-
-
-
- Bounds
- {{390.81631892425446, 994.19204840129885}, {63.714366912841797, 31.333333333333332}}
- Class
- ShapedGraphic
- ID
- 446
- Shape
- Rectangle
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs20 \cf0 Analyzer}
- VerticalPad
- 0
-
-
-
- Class
- LineGraphic
- Head
-
- ID
- 444
-
- ID
- 445
- Points
-
- {304.30400417385465, 1005.6686926988394}
- {365.81839492659333, 1029.0751702876107}
-
- Style
-
- stroke
-
- HeadArrow
- FilledArrow
- Legacy
-
- LineType
- 1
- Pattern
- 1
- TailArrow
- 0
-
-
- Tail
-
- ID
- 423
-
-
-
- Class
- LineGraphic
- Head
-
- ID
- 10
-
- ID
- 433
- Points
-
- {437.73468537749687, 869.13090571936129}
- {473.25508692784757, 868.8206769098332}
-
- Style
-
- stroke
-
- HeadArrow
- FilledArrow
- Legacy
-
- LineType
- 1
- TailArrow
- FilledArrow
-
-
-
-
- Bounds
- {{473.75506787377572, 840.81631016602194}, {63.714366912841797, 56}}
- Class
- ShapedGraphic
- ID
- 10
- Magnets
-
- {0, 1}
- {0, -1}
- {1, 0}
- {-1, 0}
-
- Shape
- Cylinder
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
-
-\f0\fs20 \cf0 Persistence\
-Backend}
- VerticalPad
- 0
-
-
-
- Class
- LineGraphic
- ID
- 428
- OrthogonalBarAutomatic
-
- OrthogonalBarPoint
- {0, 0}
- OrthogonalBarPosition
- -1
- Points
-
- {258.38771438598633, 947}
- {308.12470245361328, 886}
-
- Style
-
- stroke
-
- HeadArrow
- FilledArrow
- Legacy
-
- LineType
- 2
- TailArrow
- FilledArrow
-
-
-
-
- Class
- TableGroup
- Graphics
-
-
- Bounds
- {{310.93862753220276, 826.66148410306198}, {126, 14}}
- Class
- ShapedGraphic
- FitText
- Vertical
- Flow
- Resize
- ID
- 426
- Shape
- Rectangle
- Style
-
- fill
-
- GradientCenter
- {-0.29411799999999999, -0.264706}
-
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
-
-\f0\b\fs24 \cf0 Storage}
- VerticalPad
- 0
-
- TextPlacement
- 0
-
-
- Bounds
- {{310.93862753220276, 840.66148410306198}, {126, 28}}
- Class
- ShapedGraphic
- FitText
- Vertical
- Flow
- Resize
- ID
- 43
- Shape
- Rectangle
- Style
-
- fill
-
- GradientCenter
- {-0.29411799999999999, -0.264706}
-
-
- Text
-
- Align
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
-
-\f0\fs24 \cf0 - flow_name\
-- flow_uuid}
- VerticalPad
- 0
-
- TextPlacement
- 0
-
-
- Bounds
- {{310.93862753220276, 868.66148410306198}, {126, 56}}
- Class
- ShapedGraphic
- FitText
- Vertical
- Flow
- Resize
- ID
- 427
- Shape
- Rectangle
- Style
-
- fill
-
- GradientCenter
- {-0.29411799999999999, -0.264706}
-
-
- Text
-
- Align
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
-
-\f0\fs24 \cf0 - save()\
-- get()\
-- get_failures()\
-...}
- VerticalPad
- 0
-
- TextPlacement
- 0
-
-
- GridH
-
- 426
- 43
- 427
-
-
- ID
- 425
-
-
- Bounds
- {{207.28567728426299, 974.78645878243321}, {105.10203552246094, 36}}
- Class
- ShapedGraphic
- ID
- 421
- Shape
- Cloud
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Compilation}
- VerticalPad
- 0
-
-
-
- Bounds
- {{240.83671598660843, 957.79548143397199}, {38, 14}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 422
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Engine}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Bounds
- {{215.83669066280191, 952.49403624989395}, {88, 72.509323120117188}}
- Class
- ShapedGraphic
- ID
- 423
- Shape
- Rectangle
-
-
- Class
- LineGraphic
- ID
- 418
- Points
-
- {175.01475125757293, 858.46545582024169}
- {175.01475125757293, 1126.5224146928358}
-
- Style
-
- stroke
-
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- Pattern
- 1
- TailArrow
- 0
-
-
-
-
- Bounds
- {{56.053440093994141, 802.0387135699907}, {88, 44}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- FontInfo
-
- Font
- Helvetica-BoldOblique
- Size
- 18
-
- ID
- 414
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\i\b\fs36 \cf0 Activation\
-Phase}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Bounds
- {{105.08388984446533, 1003.3409264674543}, {59, 28}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 413
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Results/\
-Exceptions}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 412
- Points
-
- {109.26527080670799, 991.99397346428293}
- {192.17343756180355, 991.99397346428293}
-
- Style
-
- stroke
-
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- FilledArrow
-
-
-
-
- Bounds
- {{115.18593484369178, 915.30610463461369}, {49, 56}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 411
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Run/\
-Resume/\
-Revert/\
-Suspend}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 410
- Points
-
- {113.34690338032949, 979.62663303122656}
- {203.34690321589053, 979.62663303122656}
-
- Style
-
- stroke
-
- HeadArrow
- FilledArrow
- Legacy
-
- LineType
- 1
- TailArrow
- 0
-
-
-
-
- Class
- Group
- Graphics
-
-
- Bounds
- {{59.15303234416389, 922.95317062424022}, {35, 28}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 402
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 GillSans;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Library\
-User}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- Group
- Graphics
-
-
- Bounds
- {{62.479807418169017, 1006.9767931370576}, {28.346457481384277, 28.346458435058594}}
- Class
- ShapedGraphic
- ID
- 404
- Shape
- Rectangle
- Style
-
- fill
-
- Color
-
- b
- 0.4
- g
- 1
- r
- 1
-
- Draws
- NO
- FillType
- 2
- GradientAngle
- 90
- GradientColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- MiddleColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- TrippleBlend
- YES
-
- shadow
-
- Beneath
- YES
- Draws
- NO
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- Draws
- NO
- Width
- 1.5
-
-
- VFlip
- YES
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 405
- Points
-
- {62.479807418169017, 981.46498235748606}
- {90.826264899553294, 981.46498235748606}
- {90.826264899553294, 981.46498235748606}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Class
- LineGraphic
- ID
- 406
- Points
-
- {76.653036158861156, 992.80356535003978}
- {62.479806941331859, 1006.9767940907319}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Class
- LineGraphic
- ID
- 407
- Points
-
- {76.653036158861156, 992.80356535003978}
- {90.826264899553294, 1007.5437581354097}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Class
- LineGraphic
- ID
- 408
- Points
-
- {76.653036158861156, 972.96104511307078}
- {76.653036158861156, 992.80356773422557}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Bounds
- {{68.149098914445872, 955.95317062424022}, {17.00787353515625, 17.00787353515625}}
- Class
- ShapedGraphic
- ID
- 409
- Shape
- Circle
- Style
-
- fill
-
- Color
-
- b
- 0.4
- g
- 1
- r
- 1
-
- Draws
- NO
- FillType
- 2
- GradientAngle
- 90
- GradientColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- MiddleColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- TrippleBlend
- YES
-
- shadow
-
- Beneath
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- Width
- 1.5
-
-
-
-
- ID
- 403
-
-
- ID
- 401
-
-
- Class
- LineGraphic
- ID
- 399
- Points
-
- {450.39306747989752, 692.4796011495929}
- {451.28062907089827, 609.48823926071918}
-
- Style
-
- stroke
-
- HeadArrow
- UMLInheritance
- Legacy
-
- LineType
- 1
- TailArrow
- 0
-
-
- Tail
-
- ID
- 398
- Info
- 2
-
-
-
- Bounds
- {{405.3877204726607, 692.97957255114432}, {90, 36}}
- Class
- ShapedGraphic
- ID
- 398
- Magnets
-
- {0, 1}
- {0, -1}
- {1, 0}
- {-1, 0}
-
- Shape
- Rectangle
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
-
-\f0\b\fs24 \cf0 Distributed\
-Engine}
- VerticalPad
- 0
-
-
-
- Class
- LineGraphic
- Head
-
- ID
- 395
-
- ID
- 397
- Points
-
- {515.69384736152347, 643.69388126880108}
- {479.18127560660326, 607.7427600751555}
-
- Style
-
- stroke
-
- HeadArrow
- UMLInheritance
- Legacy
-
- LineType
- 1
- TailArrow
- 0
-
-
- Tail
-
- ID
- 396
- Info
- 2
-
-
-
- Bounds
- {{470.69384736152347, 643.69388126880108}, {90, 36}}
- Class
- ShapedGraphic
- ID
- 396
- Magnets
-
- {0, 1}
- {0, -1}
- {1, 0}
- {-1, 0}
-
- Shape
- Rectangle
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
-
-\f0\b\fs24 \cf0 No-Thread\
-Engine}
- VerticalPad
- 0
-
-
-
- Class
- LineGraphic
- Head
-
- ID
- 395
-
- ID
- 27
- Points
-
- {387.9411398922191, 643.33613420977974}
- {422.69414909838434, 607.74967407906797}
-
- Style
-
- stroke
-
- HeadArrow
- UMLInheritance
- Legacy
-
- LineType
- 1
- TailArrow
- 0
-
-
- Tail
-
- ID
- 11
-
-
-
- Bounds
- {{342.59180028217145, 643.69385172515479}, {90, 36}}
- Class
- ShapedGraphic
- ID
- 11
- Magnets
-
- {0, 1}
- {0, -1}
- {1, 0}
- {-1, 0}
-
- Shape
- Rectangle
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
-
-\f0\i\b\fs24 \cf0 K
-\i0 -Threaded\
-Engine}
- VerticalPad
- 0
-
-
-
- Class
- TableGroup
- Graphics
-
-
- Bounds
- {{405.38771609711887, 495.39195656369293}, {90, 14}}
- Class
- ShapedGraphic
- FitText
- Vertical
- Flow
- Resize
- ID
- 393
- Shape
- Rectangle
- Style
-
- fill
-
- GradientCenter
- {-0.29411799999999999, -0.264706}
-
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
-
-\f0\i\b\fs24 \cf0 Engine}
- VerticalPad
- 0
-
- TextPlacement
- 0
-
-
- Bounds
- {{405.38771609711887, 509.39195656369293}, {90, 42}}
- Class
- ShapedGraphic
- FitText
- Vertical
- Flow
- Resize
- ID
- 394
- Shape
- Rectangle
- Style
-
- fill
-
- GradientCenter
- {-0.29411799999999999, -0.264706}
-
-
- Text
-
- Align
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
-
-\f0\fs24 \cf0 - notifier\
-- atom_notifier\
-- storage}
- VerticalPad
- 0
-
- TextPlacement
- 0
-
-
- Bounds
- {{405.38771609711887, 551.39195656369293}, {90, 56}}
- Class
- ShapedGraphic
- FitText
- Vertical
- Flow
- Resize
- ID
- 395
- Shape
- Rectangle
- Style
-
- fill
-
- GradientCenter
- {-0.29411799999999999, -0.264706}
-
-
- Text
-
- Align
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
-
-\f0\fs24 \cf0 - compile()\
-- prepare()\
-- run()\
-- suspend()}
- VerticalPad
- 0
-
- TextPlacement
- 0
-
-
- GridH
-
- 393
- 394
- 395
-
-
- ID
- 392
-
-
- Bounds
- {{324.43479725203395, 600.47359077973181}, {35, 14}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- FontInfo
-
- Font
- Helvetica
- Size
- 12
-
- ID
- 390
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\i\fs24 \cf0 Load()}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 389
- Points
-
- {299.19385094739675, 622.37332926589443}
- {349.19384944761669, 622.37332926589443}
-
- Style
-
- stroke
-
- HeadArrow
- FilledArrow
- Legacy
-
- LineType
- 1
- TailArrow
- FilledArrow
-
-
-
-
- Class
- LineGraphic
- ID
- 388
- Points
-
- {315.73465810741618, 475.31037359821562}
- {315.73465810741618, 743.36733247080952}
-
- Style
-
- stroke
-
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- Pattern
- 1
- TailArrow
- 0
-
-
-
-
- Bounds
- {{183.17344081803969, 484.69386811754907}, {72, 42}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- FontInfo
-
- Font
- Helvetica
- Size
- 12
-
- ID
- 387
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\i\fs24 \cf0 Workflow +\
-Runtime\
-Configuration}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Bounds
- {{192.17344567816366, 658.51018444452041}, {54, 36}}
- Class
- ShapedGraphic
- ID
- 386
- Shape
- Rectangle
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Storage\
-Config}
-
-
-
- Bounds
- {{192.17343756180355, 606.36734600615216}, {54, 36}}
- Class
- ShapedGraphic
- ID
- 385
- Shape
- Rectangle
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Engine\
-Config}
-
-
-
- Bounds
- {{192.1734294454435, 554.22448349078456}, {54, 36}}
- Class
- ShapedGraphic
- ID
- 1
- Shape
- Rectangle
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Flow}
-
-
-
- Bounds
- {{161.23465842199704, 531.90531247737556}, {126, 182}}
- Class
- ShapedGraphic
- ID
- 15
- Shape
- NoteShape
- Style
-
- Text
-
- VerticalPad
- 0
-
-
-
- Bounds
- {{81.034519768316954, 649.04956274775338}, {43, 28}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 384
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Returns\
-Engine}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 383
- Points
-
- {83.544734716513915, 635.76110575309315}
- {129.28172189203261, 635.76110575309315}
-
- Style
-
- stroke
-
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- FilledArrow
-
-
-
-
- Bounds
- {{80.054942197373691, 597.00601059533471}, {47, 14}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 382
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Provides}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 381
- Points
-
- {87.626367290135391, 623.39376532003678}
- {133.36335446565408, 623.39376532003678}
-
- Style
-
- stroke
-
- HeadArrow
- FilledArrow
- Legacy
-
- LineType
- 1
- TailArrow
- 0
-
-
-
-
- Class
- Group
- Graphics
-
-
- Bounds
- {{33.432496253969788, 566.72030291305043}, {35, 28}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 373
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 GillSans;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Library\
-User}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- Group
- Graphics
-
-
- Bounds
- {{36.759271327974915, 650.74392542586781}, {28.346457481384277, 28.346458435058594}}
- Class
- ShapedGraphic
- ID
- 375
- Shape
- Rectangle
- Style
-
- fill
-
- Color
-
- b
- 0.4
- g
- 1
- r
- 1
-
- Draws
- NO
- FillType
- 2
- GradientAngle
- 90
- GradientColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- MiddleColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- TrippleBlend
- YES
-
- shadow
-
- Beneath
- YES
- Draws
- NO
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- Draws
- NO
- Width
- 1.5
-
-
- VFlip
- YES
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 376
- Points
-
- {36.759271327974915, 625.23211464629628}
- {65.105728809359192, 625.23211464629628}
- {65.105728809359192, 625.23211464629628}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Class
- LineGraphic
- ID
- 377
- Points
-
- {50.932500068667053, 636.57069763884999}
- {36.759270851137757, 650.74392637954213}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Class
- LineGraphic
- ID
- 378
- Points
-
- {50.932500068667053, 636.57069763884999}
- {65.105728809359192, 651.31089042421991}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Class
- LineGraphic
- ID
- 379
- Points
-
- {50.932500068667053, 616.728177401881}
- {50.932500068667053, 636.57070002303578}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Bounds
- {{42.42856282425177, 599.72030291305043}, {17.00787353515625, 17.00787353515625}}
- Class
- ShapedGraphic
- ID
- 380
- Shape
- Circle
- Style
-
- fill
-
- Color
-
- b
- 0.4
- g
- 1
- r
- 1
-
- Draws
- NO
- FillType
- 2
- GradientAngle
- 90
- GradientColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- MiddleColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- TrippleBlend
- YES
-
- shadow
-
- Beneath
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- Width
- 1.5
-
-
-
-
- ID
- 374
-
-
- ID
- 372
-
-
- Bounds
- {{56.053440093994141, 454.08162381538807}, {97, 44}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- FontInfo
-
- Font
- Helvetica-BoldOblique
- Size
- 18
-
- ID
- 371
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\i\b\fs36 \cf0 Translation\
-Phase}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 370
- Points
-
- {239.72452365274654, 129.59183421248156}
- {249.59182766764883, 184.82352424792543}
-
- Style
-
- stroke
-
- HeadArrow
- FilledArrow
- Legacy
-
- LineType
- 1
- Pattern
- 1
- TailArrow
- 0
-
-
-
-
- Bounds
- {{203.06122053766794, 96.734692512775737}, {75, 28}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- FontInfo
-
- Font
- Helvetica
- Size
- 12
-
- ID
- 369
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\i\fs24 \cf0 Explicit\
-dependencies}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 368
- Points
-
- {16.938771677235714, 434.69386909068618}
- {550.61223067824244, 434.69386909068618}
-
- Style
-
- stroke
-
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- Pattern
- 1
- TailArrow
- 0
-
-
-
-
- Bounds
- {{56.053440093994141, 39.83673387962002}, {112, 44}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- FontInfo
-
- Font
- Helvetica-BoldOblique
- Size
- 18
-
- ID
- 367
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\i\b\fs36 \cf0 Construction\
-Phase}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Bounds
- {{100.22448568729375, 191.89795101130832}, {50, 56}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 366
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Creates\
-\
-\
-Workflow}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 364
- Points
-
- {110.31631892346081, 220.32652202282102}
- {156.05330609897936, 220.32652202282102}
-
- Style
-
- stroke
-
- HeadArrow
- FilledArrow
- Legacy
-
- LineType
- 1
- TailArrow
- FilledArrow
-
-
-
-
- Class
- TableGroup
- Graphics
-
-
- Bounds
- {{306.40872322346235, 337.6122433290239}, {126, 14}}
- Class
- ShapedGraphic
- FitText
- Vertical
- Flow
- Resize
- ID
- 361
- Shape
- Rectangle
- Style
-
- fill
-
- GradientCenter
- {-0.29411799999999999, -0.264706}
-
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
-
-\f0\i\b\fs24 \cf0 Retry (Atom)}
- VerticalPad
- 0
-
- TextPlacement
- 0
-
-
- Bounds
- {{306.40872322346235, 351.6122433290239}, {126, 56}}
- Class
- ShapedGraphic
- FitText
- Vertical
- Flow
- Resize
- ID
- 362
- Shape
- Rectangle
- Style
-
- fill
-
- GradientCenter
- {-0.29411799999999999, -0.264706}
-
-
- Text
-
- Align
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
-
-\f0\fs24 \cf0 - execute()\
-- revert()\
-- on_failure()\
-...}
- VerticalPad
- 0
-
- TextPlacement
- 0
-
-
- GridH
-
- 361
- 362
-
-
- ID
- 360
-
-
- Class
- TableGroup
- Graphics
-
-
- Bounds
- {{165.22448860432195, 337.6122433290239}, {126, 14}}
- Class
- ShapedGraphic
- FitText
- Vertical
- Flow
- Resize
- ID
- 42
- Shape
- Rectangle
- Style
-
- fill
-
- GradientCenter
- {-0.29411799999999999, -0.264706}
-
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
-
-\f0\i\b\fs24 \cf0 Task (Atom)}
- VerticalPad
- 0
-
- TextPlacement
- 0
-
-
- Bounds
- {{165.22448860432195, 351.6122433290239}, {126, 56}}
- Class
- ShapedGraphic
- FitText
- Vertical
- Flow
- Resize
- ID
- 44
- Shape
- Rectangle
- Style
-
- fill
-
- GradientCenter
- {-0.29411799999999999, -0.264706}
-
-
- Text
-
- Align
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
-
-\f0\fs24 \cf0 - execute()\
-- revert()\
-- update_progress()\
-...}
- VerticalPad
- 0
-
- TextPlacement
- 0
-
-
- GridH
-
- 42
- 44
-
-
- ID
- 352
-
-
- Class
- LineGraphic
- Head
-
- ID
- 840
-
- ID
- 842
- Points
-
- {381.22447887295158, 117.34693649161716}
- {381.85914273540726, 165.11464199273692}
-
- Style
-
- stroke
-
- HeadArrow
- FilledArrow
- Legacy
-
- LineType
- 1
- Pattern
- 1
- TailArrow
- 0
-
-
-
-
- Class
- LineGraphic
- ID
- 347
- Points
-
- {395.51019288062668, 111.79728682683641}
- {394.92858042750709, 139.79728698730469}
-
- Style
-
- stroke
-
- HeadArrow
- FilledArrow
- Legacy
-
- LineType
- 1
- Pattern
- 1
- TailArrow
- 0
-
-
-
-
- Bounds
- {{302.34693227416039, 79.112244302955403}, {185, 28}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- FontInfo
-
- Font
- Helvetica
- Size
- 12
-
- ID
- 345
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\i\fs24 \cf0 Workflow (declarative) structure\
-& code (not executed immediately)}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 329
- Points
-
- {472.22448860432172, 249.61224332902393}
- {411.31888545619614, 269.91411104506579}
-
- Style
-
- stroke
-
- HeadArrow
- FilledArrow
- Legacy
-
- LineType
- 1
- Pattern
- 1
- TailArrow
- 0
-
-
-
-
- Class
- LineGraphic
- ID
- 343
- Points
-
- {474.22448860432172, 205.97599760148498}
- {409.22448860432172, 228.24848490451151}
-
- Style
-
- stroke
-
- HeadArrow
- FilledArrow
- Legacy
-
- LineType
- 1
- Pattern
- 1
- TailArrow
- 0
-
-
-
-
- Bounds
- {{478.22448860432172, 179.61224332902398}, {83, 42}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- FontInfo
-
- Font
- Helvetica
- Size
- 12
-
- ID
- 344
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\i\fs24 \cf0 Dataflow\
-(symbol-based)\
-dependencies}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 341
- Points
-
- {361.09295431543518, 212.90662923905811}
- {315.35596770538763, 253.81785993690883}
-
- Style
-
- stroke
-
- HeadArrow
- FilledArrow
- Legacy
-
- LineType
- 1
- TailArrow
- 0
-
-
-
-
- Bounds
- {{387.44897720864344, 229.36224332902393}, {30, 14}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 336
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 out/in}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 334
- Points
-
- {239.72451559473222, 278.11224001641114}
- {269.72448860432183, 278.11224001641114}
-
- Style
-
- stroke
-
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- FilledArrow
-
-
-
-
- Class
- LineGraphic
- ID
- 333
- Points
-
- {324.22448507715393, 278.11224001641114}
- {354.2244580867436, 278.11224001641114}
-
- Style
-
- stroke
-
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- FilledArrow
-
-
-
-
- Class
- LineGraphic
- ID
- 332
- Points
-
- {325.22451559473205, 192.11224001641122}
- {355.22448860432172, 192.11224001641122}
-
- Style
-
- stroke
-
- HeadArrow
- FilledArrow
- Legacy
-
- LineType
- 1
- TailArrow
- 0
-
-
-
-
- Class
- LineGraphic
- Head
-
- ID
- 324
-
- ID
- 331
- Points
-
- {239.72450209952797, 192.61225527520028}
- {269.72447510911758, 192.61225527520028}
-
- Style
-
- stroke
-
- HeadArrow
- FilledArrow
- Legacy
-
- LineType
- 1
- TailArrow
- 0
-
-
- Tail
-
- ID
- 28
-
-
-
- Bounds
- {{474.22448860432172, 234.61224332902393}, {49, 42}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- FontInfo
-
- Font
- Helvetica
- Size
- 12
-
- ID
- 330
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\i\fs24 \cf0 Nested\
-subflow\
-with retry}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Bounds
- {{271.72448860432172, 251.61224332902393}, {54, 54}}
- Class
- ShapedGraphic
- HFlip
- YES
- ID
- 328
- Shape
- Circle
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Task}
- VerticalPad
- 0
-
-
-
- Bounds
- {{183.72451554562139, 251.61224332902393}, {54, 54}}
- Class
- ShapedGraphic
- HFlip
- YES
- ID
- 327
- Shape
- Circle
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Task}
- VerticalPad
- 0
-
-
-
- Bounds
- {{355.22448860432172, 165.61224332902398}, {54, 54}}
- Class
- ShapedGraphic
- HFlip
- YES
- ID
- 840
- Shape
- Circle
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Flow}
- VerticalPad
- 0
-
-
-
- Bounds
- {{270.22448860432183, 165.61224332902398}, {54, 54}}
- Class
- ShapedGraphic
- HFlip
- YES
- ID
- 324
- Shape
- Circle
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Task}
- VerticalPad
- 0
-
-
-
- Bounds
- {{185.22448860432195, 165.61224332902398}, {54, 54}}
- Class
- ShapedGraphic
- HFlip
- YES
- ID
- 28
- Shape
- Circle
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Task}
- VerticalPad
- 0
-
-
-
- Class
- TableGroup
- Graphics
-
-
- Bounds
- {{165.224488604322, 153.79728666398492}, {269, 168}}
- Class
- ShapedGraphic
- FitText
- Vertical
- Flow
- Resize
- ID
- 35
- Shape
- Rectangle
- Style
-
- fill
-
- GradientCenter
- {-0.29411799999999999, -0.264706}
-
-
- Text
-
- Align
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
-
-\f0\fs24 \cf0 \
-\
-\
-\
-\
-\
-\
-\
-\
-\
-\
-}
- VerticalPad
- 0
-
- TextPlacement
- 0
-
-
- Bounds
- {{165.224488604322, 139.79728666398492}, {269, 14}}
- Class
- ShapedGraphic
- FitText
- Vertical
- Flow
- Resize
- ID
- 34
- Shape
- Rectangle
- Style
-
- fill
-
- GradientCenter
- {-0.29411799999999999, -0.264706}
-
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
-
-\f0\i\b\fs24 \cf0 Flow (pattern)}
- VerticalPad
- 0
-
- TextPlacement
- 0
-
-
- GridH
-
- 34
- 35
-
-
- ID
- 33
-
-
- Class
- Group
- Graphics
-
-
- Bounds
- {{56.122447887295152, 164.67346775924003}, {35, 28}}
- Class
- ShapedGraphic
- FitText
- YES
- Flow
- Resize
- ID
- 61
- Shape
- Rectangle
- Style
-
- fill
-
- Draws
- NO
-
- shadow
-
- Draws
- NO
-
- stroke
-
- Draws
- NO
-
-
- Text
-
- Pad
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 GillSans;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
-
-\f0\fs24 \cf0 Library\
-User}
- VerticalPad
- 0
-
- Wrap
- NO
-
-
- Class
- Group
- Graphics
-
-
- Bounds
- {{59.449222961300279, 248.69709027205738}, {28.346457481384277, 28.346458435058594}}
- Class
- ShapedGraphic
- ID
- 63
- Shape
- Rectangle
- Style
-
- fill
-
- Color
-
- b
- 0.4
- g
- 1
- r
- 1
-
- Draws
- NO
- FillType
- 2
- GradientAngle
- 90
- GradientColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- MiddleColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- TrippleBlend
- YES
-
- shadow
-
- Beneath
- YES
- Draws
- NO
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- Draws
- NO
- Width
- 1.5
-
-
- VFlip
- YES
- Wrap
- NO
-
-
- Class
- LineGraphic
- ID
- 64
- Points
-
- {59.449222961300279, 223.18527949248588}
- {87.795680442684557, 223.18527949248588}
- {87.795680442684557, 223.18527949248588}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Class
- LineGraphic
- ID
- 65
- Points
-
- {73.622451701992418, 234.52386248503961}
- {59.449222484463121, 248.6970912257317}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Class
- LineGraphic
- ID
- 66
- Points
-
- {73.622451701992418, 234.52386248503953}
- {87.795680442684557, 249.26405527040947}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Class
- LineGraphic
- ID
- 67
- Points
-
- {73.622451701992418, 214.68134224807059}
- {73.622451701992418, 234.52386486922538}
-
- Style
-
- shadow
-
- Beneath
- YES
- Draws
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- HeadArrow
- 0
- Legacy
-
- LineType
- 1
- TailArrow
- 0
- Width
- 1.5
-
-
-
-
- Bounds
- {{65.118514457577135, 197.67346775924003}, {17.00787353515625, 17.00787353515625}}
- Class
- ShapedGraphic
- ID
- 68
- Shape
- Circle
- Style
-
- fill
-
- Color
-
- b
- 0.4
- g
- 1
- r
- 1
-
- Draws
- NO
- FillType
- 2
- GradientAngle
- 90
- GradientColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- MiddleColor
-
- b
- 0.4
- g
- 1
- r
- 1
-
- TrippleBlend
- YES
-
- shadow
-
- Beneath
- YES
- Fuzziness
- 2.5038185119628906
- ShadowVector
- {0, 1}
-
- stroke
-
- CornerRadius
- 1
- Width
- 1.5
-
-
-
-
- ID
- 62
-
-
- ID
- 60
-
-
- Class
- Group
- Graphics
-
-
- Bounds
- {{524.20410965184897, 903.84686831164879}, {90, 36}}
- Class
- ShapedGraphic
- ID
- 440
- Magnets
-
- {0, 1}
- {0, -1}
- {1, 0}
- {-1, 0}
-
- Shape
- RoundRect
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
-
-\f0\fs20 \cf0 Zookeeper}
- VerticalPad
- 0
-
-
-
- Bounds
- {{524.20413205306681, 867.84684591043094}, {90, 36}}
- Class
- ShapedGraphic
- ID
- 441
- Magnets
-
- {0, 1}
- {0, -1}
- {1, 0}
- {-1, 0}
-
- Shape
- RoundRect
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
-
-\f0\fs20 \cf0 Filesystem}
- VerticalPad
- 0
-
-
-
- Bounds
- {{524.20410965184885, 832.86723361478039}, {90, 36}}
- Class
- ShapedGraphic
- ID
- 442
- Magnets
-
- {0, 1}
- {0, -1}
- {1, 0}
- {-1, 0}
-
- Shape
- RoundRect
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
-
-\f0\fs20 \cf0 Memory}
- VerticalPad
- 0
-
-
-
- Bounds
- {{524.20409341912841, 797.78565525800093}, {90, 36}}
- Class
- ShapedGraphic
- ID
- 443
- Magnets
-
- {0, 1}
- {0, -1}
- {1, 0}
- {-1, 0}
-
- Shape
- RoundRect
- Style
-
- Text
-
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
-
-\f0\fs20 \cf0 SQLAlchemy}
- VerticalPad
- 0
-
-
-
- ID
- 439
-
-
- Bounds
- {{366.28570556640625, 1120.9999961853027}, {75.71429443359375, 44}}
- Class
- ShapedGraphic
- ID
- 835
- Shape
- Rectangle
- Style
-
- stroke
-
- Pattern
- 1
-
-
-
-
- Bounds
- {{366.28571101041302, 969.38000187999}, {202.04080200195312, 196.6199951171875}}
- Class
- ShapedGraphic
- ID
- 444
- Shape
- Rectangle
-
-
- Bounds
- {{379.54083251953125, 960.24970708018532}, {202.04080200195312, 196.6199951171875}}
- Class
- ShapedGraphic
- ID
- 1170
- Shape
- Rectangle
-
-
- Bounds
- {{181.81308267749165, 1321.1440843224241}, {236.99999999999997, 168}}
- Class
- ShapedGraphic
- FitText
- Vertical
- Flow
- Resize
- ID
- 1172
- Shape
- Rectangle
- Style
-
- fill
-
- GradientCenter
- {-0.29411799999999999, -0.264706}
-
-
- Text
-
- Align
- 0
- Text
- {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200
-\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
-
-\f0\fs24 \cf0 \
-\
-\
-\
-\
-\
-\
-\
-\
-\
-\
-}
- VerticalPad
- 0
-
- TextPlacement
- 0
-
-
- GridInfo
-
- GuidesLocked
- NO
- GuidesVisible
- YES
- HPages
- 2
- ImageCounter
- 1
- KeepToScale
-
- Layers
-
-
- Lock
- NO
- Name
- Layer 1
- Print
- YES
- View
- YES
-
-
- LayoutInfo
-
- Animate
- NO
- circoMinDist
- 18
- circoSeparation
- 0.0
- layoutEngine
- dot
- neatoSeparation
- 0.0
- twopiSeparation
- 0.0
-
- LinksVisible
- NO
- MagnetsVisible
- NO
- MasterSheets
-
- ModificationDate
- 2014-07-09 22:24:00 +0000
- Modifier
- Joshua Harlow
- NotesVisible
- NO
- Orientation
- 2
- OriginVisible
- NO
- PageBreaks
- YES
- PrintInfo
-
- NSBottomMargin
-
- float
- 41
-
- NSHorizonalPagination
-
- coded
- BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG
-
- NSLeftMargin
-
- float
- 18
-
- NSPaperSize
-
- size
- {612, 792}
-
- NSPrintReverseOrientation
-
- int
- 0
-
- NSRightMargin
-
- float
- 18
-
- NSTopMargin
-
- float
- 18
-
-
- PrintOnePage
-
- ReadOnly
- NO
- RowAlign
- 1
- RowSpacing
- 36
- SheetTitle
- Canvas 1
- SmartAlignmentGuidesActive
- YES
- SmartDistanceGuidesActive
- YES
- UniqueID
- 1
- UseEntirePage
-
- VPages
- 3
- WindowInfo
-
- CurrentSheet
- 0
- ExpandedCanvases
-
-
- name
- Canvas 1
-
-
- Frame
- {{77, 45}, {1067, 833}}
- ListView
-
- OutlineWidth
- 142
- RightSidebar
-
- ShowRuler
-
- Sidebar
-
- SidebarWidth
- 120
- VisibleRegion
- {{8.8235295767602651, 949.50982167692416}, {900.00001682954701, 665.68628695780228}}
- Zoom
- 1.0199999809265137
- ZoomValues
-
-
- Canvas 1
- 1.0199999809265137
- 1
-
-
-
-
-
diff --git a/doc/diagrams/core.graffle.tgz b/doc/diagrams/core.graffle.tgz
new file mode 100644
index 00000000..9ab23321
Binary files /dev/null and b/doc/diagrams/core.graffle.tgz differ
diff --git a/doc/diagrams/jobboard.graffle.tgz b/doc/diagrams/jobboard.graffle.tgz
new file mode 100644
index 00000000..0fbe33a5
Binary files /dev/null and b/doc/diagrams/jobboard.graffle.tgz differ
diff --git a/doc/source/arguments_and_results.rst b/doc/source/arguments_and_results.rst
index e23a6375..cb2c8761 100644
--- a/doc/source/arguments_and_results.rst
+++ b/doc/source/arguments_and_results.rst
@@ -1,32 +1,35 @@
-==========================
-Atom Arguments and Results
-==========================
+=====================
+Arguments and results
+=====================
.. |task.execute| replace:: :py:meth:`~taskflow.task.BaseTask.execute`
.. |task.revert| replace:: :py:meth:`~taskflow.task.BaseTask.revert`
.. |retry.execute| replace:: :py:meth:`~taskflow.retry.Retry.execute`
.. |retry.revert| replace:: :py:meth:`~taskflow.retry.Retry.revert`
+.. |Retry| replace:: :py:class:`~taskflow.retry.Retry`
+.. |Task| replace:: :py:class:`Task `
-In TaskFlow, all flow and task state goes to (potentially persistent) storage.
-That includes all the information that :doc:`atoms ` (e.g. tasks) in the
-flow need when they are executed, and all the information task produces (via
-serializable task results). A developer who implements tasks or flows can
-specify what arguments a task accepts and what result it returns in several
-ways. This document will help you understand what those ways are and how to use
-those ways to accomplish your desired usage pattern.
+In TaskFlow, all flow and task state goes to (potentially persistent) storage
+(see :doc:`persistence ` for more details). That includes all the
+information that :doc:`atoms ` (e.g. tasks, retry objects...) in the
+workflow need when they are executed, and all the information task/retry
+produces (via serializable results). A developer who implements tasks/retries
+or flows can specify what arguments a task/retry accepts and what result it
+returns in several ways. This document will help you understand what those ways
+are and how to use those ways to accomplish your desired usage pattern.
.. glossary::
- Task arguments
- Set of names of task arguments available as the ``requires``
- property of the task instance. When a task is about to be executed
- values with these names are retrieved from storage and passed to
- |task.execute| method of the task.
+ Task/retry arguments
+ Set of names of task/retry arguments available as the ``requires``
+ property of the task/retry instance. When a task or retry object is
+ about to be executed values with these names are retrieved from storage
+ and passed to the ``execute`` method of the task/retry.
- Task results
- Set of names of task results (what task provides) available as
- ``provides`` property of task instance. After a task finishes
- successfully, its result(s) (what the task |task.execute| method
+ Task/retry results
+ Set of names of task/retry results (what task/retry provides) available
+ as ``provides`` property of task or retry instance. After a task/retry
+ finishes successfully, its result(s) (what the ``execute`` method
returns) are available by these names from storage (see examples
below).
@@ -44,8 +47,8 @@ There are different ways to specify the task argument ``requires`` set.
Arguments inference
-------------------
-Task arguments can be inferred from arguments of the |task.execute| method of
-the task.
+Task/retry arguments can be inferred from arguments of the |task.execute|
+method of a task (or the |retry.execute| of a retry object).
.. doctest::
@@ -56,10 +59,10 @@ the task.
>>> sorted(MyTask().requires)
['eggs', 'spam']
-Inference from the method signature is the ''simplest'' way to specify task
+Inference from the method signature is the ''simplest'' way to specify
arguments. Optional arguments (with default values), and special arguments like
-``self``, ``*args`` and ``**kwargs`` are ignored on inference (as these names
-have special meaning/usage in python).
+``self``, ``*args`` and ``**kwargs`` are ignored during inference (as these
+names have special meaning/usage in python).
.. doctest::
@@ -83,14 +86,14 @@ have special meaning/usage in python).
Rebinding
---------
-**Why:** There are cases when the value you want to pass to a task is stored
-with a name other then the corresponding task arguments name. That's when the
-``rebind`` task constructor parameter comes in handy. Using it the flow author
+**Why:** There are cases when the value you want to pass to a task/retry is
+stored with a name other then the corresponding arguments name. That's when the
+``rebind`` constructor parameter comes in handy. Using it the flow author
can instruct the engine to fetch a value from storage by one name, but pass it
-to a tasks |task.execute| method with another name. There are two possible ways
-of accomplishing this.
+to a tasks/retrys ``execute`` method with another name. There are two possible
+ways of accomplishing this.
-The first is to pass a dictionary that maps the task argument name to the name
+The first is to pass a dictionary that maps the argument name to the name
of a saved value.
For example, if you have task::
@@ -100,24 +103,25 @@ For example, if you have task::
def execute(self, vm_name, vm_image_id, **kwargs):
pass # TODO(imelnikov): use parameters to spawn vm
-and you saved 'vm_name' with 'name' key in storage, you can spawn a vm with
-such 'name' like this::
+and you saved ``'vm_name'`` with ``'name'`` key in storage, you can spawn a vm
+with such ``'name'`` like this::
SpawnVMTask(rebind={'vm_name': 'name'})
The second way is to pass a tuple/list/dict of argument names. The length of
-the tuple/list/dict should not be less then number of task required parameters.
+the tuple/list/dict should not be less then number of required parameters.
+
For example, you can achieve the same effect as the previous example with::
SpawnVMTask(rebind_args=('name', 'vm_image_id'))
-which is equivalent to a more elaborate::
+This is equivalent to a more elaborate::
SpawnVMTask(rebind=dict(vm_name='name',
vm_image_id='vm_image_id'))
-In both cases, if your task accepts arbitrary arguments with ``**kwargs``
-construct, you can specify extra arguments.
+In both cases, if your task (or retry) accepts arbitrary arguments
+with the ``**kwargs`` construct, you can specify extra arguments.
::
@@ -158,7 +162,8 @@ arguments) will appear in the ``kwargs`` of the |task.execute| method.
When constructing a task instance the flow author can also add more
requirements if desired. Those manual requirements (if they are not functional
-arguments) will appear in the ``**kwargs`` the |task.execute| method.
+arguments) will appear in the ``kwargs`` parameter of the |task.execute|
+method.
.. doctest::
@@ -189,15 +194,19 @@ avoid invalid argument mappings.
Results specification
=====================
-In python, function results are not named, so we can not infer what a task
-returns. This is important since the complete task result (what the
-|task.execute| method returns) is saved in (potentially persistent) storage,
-and it is typically (but not always) desirable to make those results accessible
-to other tasks. To accomplish this the task specifies names of those values via
-its ``provides`` task constructor parameter or other method (see below).
+In python, function results are not named, so we can not infer what a
+task/retry returns. This is important since the complete result (what the
+task |task.execute| or retry |retry.execute| method returns) is saved
+in (potentially persistent) storage, and it is typically (but not always)
+desirable to make those results accessible to others. To accomplish this
+the task/retry specifies names of those values via its ``provides`` constructor
+parameter or by its default provides attribute.
+
+Examples
+--------
Returning one value
--------------------
++++++++++++++++++++
If task returns just one value, ``provides`` should be string -- the
name of the value.
@@ -212,7 +221,7 @@ name of the value.
set(['the_answer'])
Returning a tuple
------------------
++++++++++++++++++
For a task that returns several values, one option (as usual in python) is to
return those values via a ``tuple``.
@@ -242,17 +251,17 @@ tasks) will be able to get those elements from storage by name:
Provides argument can be shorter then the actual tuple returned by a task --
then extra values are ignored (but, as expected, **all** those values are saved
-and passed to the |task.revert| method).
+and passed to the task |task.revert| or retry |retry.revert| method).
.. note::
Provides arguments tuple can also be longer then the actual tuple returned
by task -- when this happens the extra parameters are left undefined: a
warning is printed to logs and if use of such parameter is attempted a
- ``NotFound`` exception is raised.
+ :py:class:`~taskflow.exceptions.NotFound` exception is raised.
Returning a dictionary
-----------------------
+++++++++++++++++++++++
Another option is to return several values as a dictionary (aka a ``dict``).
@@ -290,16 +299,17 @@ will be able to get elements from storage by name:
and passed to the |task.revert| method). If the provides argument has some
items not present in the actual dict returned by the task -- then extra
parameters are left undefined: a warning is printed to logs and if use of
- such parameter is attempted a ``NotFound`` exception is raised.
+ such parameter is attempted a :py:class:`~taskflow.exceptions.NotFound`
+ exception is raised.
Default provides
-----------------
+++++++++++++++++
-As mentioned above, the default task base class provides nothing, which means
-task results are not accessible to other tasks in the flow.
+As mentioned above, the default base class provides nothing, which means
+results are not accessible to other tasks/retrys in the flow.
-The task author can override this and specify default value for provides using
-``default_provides`` class variable:
+The author can override this and specify default value for provides using
+the ``default_provides`` class/instance variable:
::
@@ -314,8 +324,8 @@ Of course, the flow author can override this to change names if needed:
BitsAndPiecesTask(provides=('b', 'p'))
-or to change structure -- e.g. this instance will make whole tuple accessible
-to other tasks by name 'bnp':
+or to change structure -- e.g. this instance will make tuple accessible
+to other tasks by name ``'bnp'``:
::
@@ -331,28 +341,29 @@ the task from other tasks in the flow (e.g. to avoid naming conflicts):
Revert arguments
================
-To revert a task engine calls its |task.revert| method. This method
-should accept same arguments as |task.execute| method of the task and one
-more special keyword argument, named ``result``.
+To revert a task the :doc:`engine ` calls the tasks
+|task.revert| method. This method should accept the same arguments
+as the |task.execute| method of the task and one more special keyword
+argument, named ``result``.
For ``result`` value, two cases are possible:
-* if task is being reverted because it failed (an exception was raised from its
- |task.execute| method), ``result`` value is instance of
- :py:class:`taskflow.utils.misc.Failure` object that holds exception
- information;
+* If the task is being reverted because it failed (an exception was raised
+ from its |task.execute| method), the ``result`` value is an instance of a
+ :py:class:`~taskflow.types.failure.Failure` object that holds the exception
+ information.
-* if task is being reverted because some other task failed, and this task
- finished successfully, ``result`` value is task result fetched from storage:
- basically, that's what |task.execute| method returned.
+* If the task is being reverted because some other task failed, and this task
+ finished successfully, ``result`` value is the result fetched from storage:
+ ie, what the |task.execute| method returned.
All other arguments are fetched from storage in the same way it is done for
|task.execute| method.
-To determine if task failed you can check whether ``result`` is instance of
-:py:class:`taskflow.utils.misc.Failure`::
+To determine if a task failed you can check whether ``result`` is instance of
+:py:class:`~taskflow.types.failure.Failure`::
- from taskflow.utils import misc
+ from taskflow.types import failure
class RevertingTask(task.Task):
@@ -360,55 +371,61 @@ To determine if task failed you can check whether ``result`` is instance of
return do_something(spam, eggs)
def revert(self, result, spam, eggs):
- if isinstance(result, misc.Failure):
+ if isinstance(result, failure.Failure):
print("This task failed, exception: %s"
% result.exception_str)
else:
print("do_something returned %r" % result)
-If this task failed (``do_something`` raised exception) it will print ``"This
-task failed, exception:"`` and exception message on revert. If this task
-finished successfully, it will print ``"do_something returned"`` and
-representation of result.
+If this task failed (ie ``do_something`` raised an exception) it will print
+``"This task failed, exception:"`` and a exception message on revert. If this
+task finished successfully, it will print ``"do_something returned"`` and a
+representation of the ``do_something`` result.
Retry arguments
===============
-A Retry controller works with arguments in the same way as a Task. But it has
-an additional parameter 'history' that is a list of tuples. Each tuple contains
-a result of the previous Retry run and a table where a key is a failed task and
-a value is a :py:class:`taskflow.utils.misc.Failure`.
+A |Retry| controller works with arguments in the same way as a |Task|. But it
+has an additional parameter ``'history'`` that is itself a
+:py:class:`~taskflow.retry.History` object that contains what failed over all
+the engines attempts (aka the outcomes). The history object can be
+viewed as a tuple that contains a result of the previous retrys run and a
+table/dict where each key is a failed atoms name and each value is
+a :py:class:`~taskflow.types.failure.Failure` object.
-Consider the following Retry::
+Consider the following implementation::
class MyRetry(retry.Retry):
default_provides = 'value'
def on_failure(self, history, *args, **kwargs):
- print history
+ print(list(history))
return RETRY
def execute(self, history, *args, **kwargs):
- print history
+ print(list(history))
return 5
def revert(self, history, *args, **kwargs):
- print history
+ print(list(history))
-Imagine the following Retry had returned a value '5' and then some task 'A'
+Imagine the above retry had returned a value ``'5'`` and then some task ``'A'``
failed with some exception. In this case ``on_failure`` method will receive
-the following history::
+the following history (printed as a list)::
- [('5', {'A': misc.Failure()})]
+ [('5', {'A': failure.Failure()})]
-Then the |retry.execute| method will be called again and it'll receive the same
-history.
+At this point (since the implementation returned ``RETRY``) the
+|retry.execute| method will be called again and it will receive the same
+history and it can then return a value that subseqent tasks can use to alter
+there behavior.
-If the |retry.execute| method raises an exception, the |retry.revert| method of
-Retry will be called and :py:class:`taskflow.utils.misc.Failure` object will be
-present in the history instead of Retry result::
+If instead the |retry.execute| method itself raises an exception,
+the |retry.revert| method of the implementation will be called and
+a :py:class:`~taskflow.types.failure.Failure` object will be present in the
+history object instead of the typical result.
- [('5', {'A': misc.Failure()}), (misc.Failure(), {})]
+.. note::
-After the Retry has been reverted, the Retry history will be cleaned.
+ After a |Retry| has been reverted, the objects history will be cleaned.
diff --git a/doc/source/atoms.rst b/doc/source/atoms.rst
index 85086346..f2b75ffa 100644
--- a/doc/source/atoms.rst
+++ b/doc/source/atoms.rst
@@ -1,5 +1,5 @@
------------------------
-Atoms, Tasks and Retries
+Atoms, tasks and retries
------------------------
Atom
@@ -94,8 +94,8 @@ subclasses are provided:
:py:class:`~taskflow.retry.ForEach` but extracts values from storage
instead of the :py:class:`~taskflow.retry.ForEach` constructor.
-Usage
------
+Examples
+--------
.. testsetup::
diff --git a/doc/source/conductors.rst b/doc/source/conductors.rst
index 25eb75c8..56fb0e0e 100644
--- a/doc/source/conductors.rst
+++ b/doc/source/conductors.rst
@@ -63,6 +63,10 @@ Interfaces
==========
.. automodule:: taskflow.conductors.base
+
+Implementations
+===============
+
.. automodule:: taskflow.conductors.single_threaded
Hierarchy
diff --git a/doc/source/conf.py b/doc/source/conf.py
index 3b0c35ce..9dec3b69 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
+import datetime
import os
import sys
@@ -13,7 +14,6 @@ extensions = [
'sphinx.ext.doctest',
'sphinx.ext.extlinks',
'sphinx.ext.inheritance_diagram',
- 'sphinx.ext.intersphinx',
'sphinx.ext.viewcode',
'oslosphinx'
]
@@ -37,7 +37,7 @@ exclude_patterns = ['_build']
# General information about the project.
project = u'TaskFlow'
-copyright = u'2013-2014, OpenStack Foundation'
+copyright = u'%s, OpenStack Foundation' % datetime.date.today().year
source_tree = 'http://git.openstack.org/cgit/openstack/taskflow/tree'
# If true, '()' will be appended to :func: etc. cross-reference text.
@@ -56,6 +56,7 @@ modindex_common_prefix = ['taskflow.']
# Shortened external links.
extlinks = {
'example': (source_tree + '/taskflow/examples/%s.py', ''),
+ 'pybug': ('http://bugs.python.org/issue%s', ''),
}
# -- Options for HTML output --------------------------------------------------
@@ -82,9 +83,6 @@ latex_documents = [
'OpenStack Foundation', 'manual'),
]
-# Example configuration for intersphinx: refer to the Python standard library.
-intersphinx_mapping = {'http://docs.python.org/': None}
-
# -- Options for autoddoc ----------------------------------------------------
# Keep source order
diff --git a/doc/source/engines.rst b/doc/source/engines.rst
index 752f9f0e..c9b0c5da 100644
--- a/doc/source/engines.rst
+++ b/doc/source/engines.rst
@@ -13,23 +13,23 @@ and uses it to decide which :doc:`atom ` to run and when.
TaskFlow provides different implementations of engines. Some may be easier to
use (ie, require no additional infrastructure setup) and understand; others
might require more complicated setup but provide better scalability. The idea
-and *ideal* is that deployers or developers of a service that uses TaskFlow can
+and *ideal* is that deployers or developers of a service that use TaskFlow can
select an engine that suites their setup best without modifying the code of
said service.
Engines usually have different capabilities and configuration, but all of them
**must** implement the same interface and preserve the semantics of patterns
-(e.g. parts of :py:class:`linear flow `
-are run one after another, in order, even if engine is *capable* of running
-tasks in parallel).
+(e.g. parts of a :py:class:`.linear_flow.Flow`
+are run one after another, in order, even if the selected engine is *capable*
+of running tasks in parallel).
Why they exist
--------------
-An engine being the core component which actually makes your flows progress is
-likely a new concept for many programmers so let's describe how it operates in
-more depth and some of the reasoning behind why it exists. This will hopefully
-make it more clear on there value add to the TaskFlow library user.
+An engine being *the* core component which actually makes your flows progress
+is likely a new concept for many programmers so let's describe how it operates
+in more depth and some of the reasoning behind why it exists. This will
+hopefully make it more clear on there value add to the TaskFlow library user.
First though let us discuss something most are familiar already with; the
difference between `declarative`_ and `imperative`_ programming models. The
@@ -48,15 +48,15 @@ more of a *pure* function that executes, reverts and may require inputs and
provide outputs). This is where engines get involved; they do the execution of
the *what* defined via :doc:`atoms `, tasks, flows and the relationships
defined there-in and execute these in a well-defined manner (and the engine is
-responsible for *most* of the state manipulation instead).
+responsible for any state manipulation instead).
This mix of imperative and declarative (with a stronger emphasis on the
-declarative model) allows for the following functionality to be possible:
+declarative model) allows for the following functionality to become possible:
* Enhancing reliability: Decoupling of state alterations from what should be
accomplished allows for a *natural* way of resuming by allowing the engine to
- track the current state and know at which point a flow is in and how to get
- back into that state when resumption occurs.
+ track the current state and know at which point a workflow is in and how to
+ get back into that state when resumption occurs.
* Enhancing scalability: When a engine is responsible for executing your
desired work it becomes possible to alter the *how* in the future by creating
new types of execution backends (for example the worker model which does not
@@ -83,13 +83,14 @@ Of course these kind of features can come with some drawbacks:
away from (and this is likely a mindset change for programmers used to the
imperative model). We have worked to make this less of a concern by creating
and encouraging the usage of :doc:`persistence `, to help make
- it possible to have some level of provided state transfer mechanism.
+ it possible to have state and tranfer that state via a argument input and
+ output mechanism.
* Depending on how much imperative code exists (and state inside that code)
- there can be *significant* rework of that code and converting or refactoring
- it to these new concepts. We have tried to help here by allowing you to have
- tasks that internally use regular python code (and internally can be written
- in an imperative style) as well as by providing examples and these developer
- docs; helping this process be as seamless as possible.
+ there *may* be *significant* rework of that code and converting or
+ refactoring it to these new concepts. We have tried to help here by allowing
+ you to have tasks that internally use regular python code (and internally can
+ be written in an imperative style) as well as by providing
+ :doc:`examples ` that show how to use these concepts.
* Another one of the downsides of decoupling the *what* from the *how* is that
it may become harder to use traditional techniques to debug failures
(especially if remote workers are involved). We try to help here by making it
@@ -110,16 +111,16 @@ All engines are mere classes that implement the same interface, and of course
it is possible to import them and create instances just like with any classes
in Python. But the easier (and recommended) way for creating an engine is using
the engine helper functions. All of these functions are imported into the
-`taskflow.engines` module namespace, so the typical usage of these functions
+``taskflow.engines`` module namespace, so the typical usage of these functions
might look like::
from taskflow import engines
...
flow = make_flow()
- engine = engines.load(flow, engine_conf=my_conf,
- backend=my_persistence_conf)
- engine.run
+ eng = engines.load(flow, engine='serial', backend=my_persistence_conf)
+ eng.run()
+ ...
.. automodule:: taskflow.engines.helpers
@@ -128,59 +129,74 @@ Usage
=====
To select which engine to use and pass parameters to an engine you should use
-the ``engine_conf`` parameter any helper factory function accepts. It may be:
+the ``engine`` parameter any engine helper function accepts and for any engine
+specific options use the ``kwargs`` parameter.
-* a string, naming engine type;
-* a dictionary, holding engine type with key ``'engine'`` and possibly
- type-specific engine configuration parameters.
+Types
+=====
-Single-Threaded
----------------
+Serial
+------
**Engine type**: ``'serial'``
-Runs all tasks on the single thread -- the same thread `engine.run()` is called
-on. This engine is used by default.
+Runs all tasks on a single thread -- the same thread ``engine.run()`` is
+called from.
+
+.. note::
+
+ This engine is used by default.
.. tip::
If eventlet is used then this engine will not block other threads
- from running as eventlet automatically creates a co-routine system (using
- greenthreads and monkey patching). See `eventlet `_
- and `greenlet `_ for more details.
+ from running as eventlet automatically creates a implicit co-routine
+ system (using greenthreads and monkey patching). See
+ `eventlet `_ and
+ `greenlet `_ for more details.
Parallel
--------
**Engine type**: ``'parallel'``
-Parallel engine schedules tasks onto different threads to run them in parallel.
-
-Additional supported keyword arguments:
-
-* ``executor``: a object that implements a :pep:`3148` compatible `executor`_
- interface; it will be used for scheduling tasks. You can use instances of a
- `thread pool executor`_ or a :py:class:`green executor
- ` (which internally uses
- `eventlet `_ and greenthread pools).
+A parallel engine schedules tasks onto different threads/processes to allow for
+running non-dependent tasks simultaneously. See the documentation of
+:py:class:`~taskflow.engines.action_engine.engine.ParallelActionEngine` for
+supported arguments that can be used to construct a parallel engine that runs
+using your desired execution model.
.. tip::
- Sharing executor between engine instances provides better
- scalability by reducing thread creation and teardown as well as by reusing
- existing pools (which is a good practice in general).
+ Sharing an executor between engine instances provides better
+ scalability by reducing thread/process creation and teardown as well as by
+ reusing existing pools (which is a good practice in general).
.. note::
- Running tasks with a `process pool executor`_ is not currently supported.
+ Running tasks with a `process pool executor`_ is **experimentally**
+ supported. This is mainly due to the `futures backport`_ and
+ the `multiprocessing`_ module that exist in older versions of python not
+ being as up to date (with important fixes such as :pybug:`4892`,
+ :pybug:`6721`, :pybug:`9205`, :pybug:`11635`, :pybug:`16284`,
+ :pybug:`22393` and others...) as the most recent python version (which
+ themselves have a variety of ongoing/recent bugs).
-Worker-Based
-------------
+Workers
+-------
-**Engine type**: ``'worker-based'``
+**Engine type**: ``'worker-based'`` or ``'workers'``
-For more information, please see :doc:`workers ` for more details on
-how the worker based engine operates (and the design decisions behind it).
+.. note:: Since this engine is significantly more complicated (and
+ different) then the others we thought it appropriate to devote a
+ whole documentation section to it.
+
+For further information, please refer to the the following:
+
+.. toctree::
+ :maxdepth: 2
+
+ workers
How they run
============
@@ -241,6 +257,14 @@ object starts to take over and begins going through the stages listed
below (for a more visual diagram/representation see
the :ref:`engine state diagram `).
+.. note::
+
+ The engine will respect the constraints imposed by the flow. For example,
+ if Engine is executing a :py:class:`.linear_flow.Flow` then it is
+ constrained by the dependency-graph which is linear in this case, and hence
+ using a Parallel Engine may not yield any benefits if one is looking for
+ concurrency.
+
Resumption
^^^^^^^^^^
@@ -265,13 +289,13 @@ Scheduling
^^^^^^^^^^
This stage selects which atoms are eligible to run by using a
-:py:class:`~taskflow.engines.action_engine.runtime.Scheduler` implementation
+:py:class:`~taskflow.engines.action_engine.scheduler.Scheduler` implementation
(the default implementation looks at there intention, checking if predecessor
atoms have ran and so-on, using a
:py:class:`~taskflow.engines.action_engine.analyzer.Analyzer` helper
object as needed) and submits those atoms to a previously provided compatible
`executor`_ for asynchronous execution. This
-:py:class:`~taskflow.engines.action_engine.runtime.Scheduler` will return a
+:py:class:`~taskflow.engines.action_engine.scheduler.Scheduler` will return a
`future`_ object for each atom scheduled; all of which are collected into a
list of not done futures. This will end the initial round of scheduling and at
this point the engine enters the :ref:`waiting ` stage.
@@ -284,7 +308,7 @@ Waiting
In this stage the engine waits for any of the future objects previously
submitted to complete. Once one of the future objects completes (or fails) that
atoms result will be examined and finalized using a
-:py:class:`~taskflow.engines.action_engine.runtime.Completer` implementation.
+:py:class:`~taskflow.engines.action_engine.completer.Completer` implementation.
It typically will persist results to a provided persistence backend (saved
into the corresponding :py:class:`~taskflow.persistence.logbook.AtomDetail`
and :py:class:`~taskflow.persistence.logbook.FlowDetail` objects) and reflect
@@ -322,24 +346,33 @@ saved for this execution.
Interfaces
==========
+.. automodule:: taskflow.engines.base
+
+Implementations
+===============
+
.. automodule:: taskflow.engines.action_engine.analyzer
.. automodule:: taskflow.engines.action_engine.compiler
+.. automodule:: taskflow.engines.action_engine.completer
.. automodule:: taskflow.engines.action_engine.engine
+.. automodule:: taskflow.engines.action_engine.executor
.. automodule:: taskflow.engines.action_engine.runner
.. automodule:: taskflow.engines.action_engine.runtime
-.. automodule:: taskflow.engines.base
+.. automodule:: taskflow.engines.action_engine.scheduler
+.. automodule:: taskflow.engines.action_engine.scopes
Hierarchy
=========
.. inheritance-diagram::
- taskflow.engines.base
- taskflow.engines.action_engine.engine
- taskflow.engines.worker_based.engine
+ taskflow.engines.action_engine.engine.ActionEngine
+ taskflow.engines.base.Engine
+ taskflow.engines.worker_based.engine.WorkerBasedActionEngine
:parts: 1
+.. _multiprocessing: https://docs.python.org/2/library/multiprocessing.html
.. _future: https://docs.python.org/dev/library/concurrent.futures.html#future-objects
.. _executor: https://docs.python.org/dev/library/concurrent.futures.html#concurrent.futures.Executor
.. _networkx: https://networkx.github.io/
-.. _thread pool executor: https://docs.python.org/dev/library/concurrent.futures.html#threadpoolexecutor
+.. _futures backport: https://pypi.python.org/pypi/futures
.. _process pool executor: https://docs.python.org/dev/library/concurrent.futures.html#processpoolexecutor
diff --git a/doc/source/examples.rst b/doc/source/examples.rst
index 9199bc11..d30bd85f 100644
--- a/doc/source/examples.rst
+++ b/doc/source/examples.rst
@@ -1,3 +1,39 @@
+Hello world
+===========
+
+.. note::
+
+ Full source located at :example:`hello_world`.
+
+.. literalinclude:: ../../taskflow/examples/hello_world.py
+ :language: python
+ :linenos:
+ :lines: 16-
+
+Passing values from and to tasks
+================================
+
+.. note::
+
+ Full source located at :example:`simple_linear_pass`.
+
+.. literalinclude:: ../../taskflow/examples/simple_linear_pass.py
+ :language: python
+ :linenos:
+ :lines: 16-
+
+Using listeners
+===============
+
+.. note::
+
+ Full source located at :example:`echo_listener`.
+
+.. literalinclude:: ../../taskflow/examples/echo_listener.py
+ :language: python
+ :linenos:
+ :lines: 16-
+
Making phone calls
==================
@@ -34,6 +70,42 @@ Building a car
:linenos:
:lines: 16-
+Iterating over the alphabet (using processes)
+=============================================
+
+.. note::
+
+ Full source located at :example:`alphabet_soup`.
+
+.. literalinclude:: ../../taskflow/examples/alphabet_soup.py
+ :language: python
+ :linenos:
+ :lines: 16-
+
+Watching execution timing
+=========================
+
+.. note::
+
+ Full source located at :example:`timing_listener`.
+
+.. literalinclude:: ../../taskflow/examples/timing_listener.py
+ :language: python
+ :linenos:
+ :lines: 16-
+
+Table multiplier (in parallel)
+==============================
+
+.. note::
+
+ Full source located at :example:`parallel_table_multiply`
+
+.. literalinclude:: ../../taskflow/examples/parallel_table_multiply.py
+ :language: python
+ :linenos:
+ :lines: 16-
+
Linear equation solver (explicit dependencies)
==============================================
@@ -80,6 +152,18 @@ Creating a volume (in parallel)
:linenos:
:lines: 16-
+Summation mapper(s) and reducer (in parallel)
+=============================================
+
+.. note::
+
+ Full source located at :example:`simple_map_reduce`
+
+.. literalinclude:: ../../taskflow/examples/simple_map_reduce.py
+ :language: python
+ :linenos:
+ :lines: 16-
+
Storing & emitting a bill
=========================
@@ -163,3 +247,50 @@ Distributed execution (simple)
:language: python
:linenos:
:lines: 16-
+
+Distributed notification (simple)
+=================================
+
+.. note::
+
+ Full source located at :example:`wbe_event_sender`
+
+.. literalinclude:: ../../taskflow/examples/wbe_event_sender.py
+ :language: python
+ :linenos:
+ :lines: 16-
+
+Distributed mandelbrot (complex)
+================================
+
+.. note::
+
+ Full source located at :example:`wbe_mandelbrot`
+
+Output
+------
+
+.. image:: img/mandelbrot.png
+ :height: 128px
+ :align: right
+ :alt: Generated mandelbrot fractal
+
+Code
+----
+
+.. literalinclude:: ../../taskflow/examples/wbe_mandelbrot.py
+ :language: python
+ :linenos:
+ :lines: 16-
+
+Jobboard producer/consumer (simple)
+===================================
+
+.. note::
+
+ Full source located at :example:`jobboard_produce_consume_colors`
+
+.. literalinclude:: ../../taskflow/examples/jobboard_produce_consume_colors.py
+ :language: python
+ :linenos:
+ :lines: 16-
diff --git a/doc/source/img/engine_states.svg b/doc/source/img/engine_states.svg
index 497c31ef..08a419d5 100644
--- a/doc/source/img/engine_states.svg
+++ b/doc/source/img/engine_states.svg
@@ -3,6 +3,6 @@
-