Extensible Engine Architecture
We need to redesign workflow engine and make it more flexible, easier to understand and easier to extend. In particular, we need to come up with an abstract model that would allow us to treat workflow controls uniformly so that we could easily plug a particular implementation of flow control.
Blueprint information
- Status:
- Complete
- Approver:
- Renat Akhmerov
- Priority:
- High
- Drafter:
- Renat Akhmerov
- Direction:
- Needs approval
- Assignee:
- Renat Akhmerov
- Definition:
- New
- Series goal:
- Accepted for juno
- Implementation:
-
Implemented
- Milestone target:
-
0.1
- Started by
- Renat Akhmerov
- Completed by
- Renat Akhmerov
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Initial commit for the new engine
Addressed by: https:/
Sketching out main engine methods
Addressed by: https:/
Adding state transitions
Addressed by: https:/
Sketching out engine methods
Addressed by: https:/
Adding a TODO to rpc.py to add rpc servers for engine and executor
Addressed by: https:/
Working on reverse workflow handler
Addressed by: https:/
Initial commit for the new engine
Addressed by: https:/
Switching from dicts to regular objects in DB API
Addressed by: https:/
Getting rid of dictionaries in DB API
Addressed by: https:/
Switching from dicts to regular objects in DB API
Addressed by: https:/
Implementing DSL specification v2 (partially)
Addressed by: https:/
Preparing DB objects for the new engine
Addressed by: https:/
Unit tests for v2 DB model
Addressed by: https:/
Working on reverse workflow: fixing specification version injection
Addressed by: https:/
Replacing NotImplemented with NotImplementedError
Addressed by: https:/
Working on reverse workflow: implementing method start_workflow()
Addressed by: https:/
Working on reverse workflow: on_task_result()
Addressed by: https:/
Adding implementation of method __repr__ for DB models
Addressed by: https:/
Moving TaskResult and states to 'workflow' package
Addressed by: https:/
Working on engine implementation
Addressed by: https:/
Renaming base class for DB models
Addressed by: https:/
Working on engine implementation: on_task_result()
Addressed by: https:/
Working on linear workflow: start_workflow()
Addressed by: https:/
Working on linear workflow: on_task_result()
Addressed by: https:/
Fixing validation schemy for action specifications ('output' property)
Addressed by: https:/
Implementing subworkflows (one workflow calls another one)
Addressed by: https:/
Renaming 'linear' workflow to 'direct'
Addressed by: https:/
Removing 'namespaces' section from DSL
Addressed by: https:/
Introducing 'workflow' as an individual entity
Addressed by: https:/
Removing obsolete db.api module in favor of db.v1.api
Addressed by: https:/
Unit tests for services/workbooks
Addressed by: https:/
Adding unit tests for workflow DB model
Addressed by: https:/
Adding new methods to DB API v2 (load_xxx and create_
Addressed by: https:/
Fixing services/
Addressed by: https:/
Renaming 'start_task' to 'start-task' in workflow spec
Addressed by: https:/
Renaming 'class' to 'base' in action spec
Addressed by: https:/
Fixing processing subworkflow result
Addressed by: https:/
Small optimizations and fixes
Addressed by: https:/
Renaming 'workflow_
Work Items
Dependency tree

* Blueprints in grey have been implemented.