Provide a highly efficient database for managing complex, distributed task workflows. This is taking the concept of a system bus through message queueing and extending that to also model the concept of one action initiating subsequent actions.
- Minimise global locking/use lock-free implementations where possible.
- Ensure transactionability of all actions to guarentee data integrity.
- Workflows can be manipulated while running.
- The structure of workflows is dynamic
#Example Workflow ┌──> Task B ─┐ Task A ─┤ ├──> Task D └──> Task C ─┘
##Steps
- Task A is queued to run
- Task A is completed which queues Task B and Task C
- Task B and Task C are run in parallel
- When the last of Task B and Task C is completed, Task D is queued
- Task D is completed and completes the workflow