GitXplorerGitXplorer
d

DynamicWorkflow

public
2 stars
2 forks
0 issues

Commits

List of commits on branch master.
Unverified
ede14fdb563aa8b34e1548110a83b65fce4c657c

Documentation

ddanielrbradley committed 13 years ago
Unverified
e00d89040f8e1a9968cd467b2ecec791218093b9

Add internal retry logic on dequeue to improve throughput when encountering race conditions.

ddanielrbradley committed 13 years ago
Unverified
99c72235ca372d01a3de15a96d6b669c5a4a42a9

Remove global lock on every task completion process via the workflows write lock.

ddanielrbradley committed 13 years ago
Unverified
0dfba0f0e6b536265ca23d8f4c392a8fe84ef838

Tweak demo configuration for faster startup

ddanielrbradley committed 13 years ago
Unverified
c751450c43a8417f4dba9cc26c8b6cf605130f7f

Couple of pints down and some harsh multi-threading tests and I can't now seem to break it. Time to go to sleep. Benchmarking for another day.

ddanielrbradley committed 13 years ago
Unverified
6f872e9e57f1691d41001dd845aee782495a81d8

Create demo application simulating the creation and processing of workflows and tasks.

ddanielrbradley committed 13 years ago

README

The README file for this repository.

Project Aim

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.

High level goals

  1. Minimise global locking/use lock-free implementations where possible.
  2. Ensure transactionability of all actions to guarentee data integrity.
  3. Workflows can be manipulated while running.
  4. The structure of workflows is dynamic

#Example Workflow ┌──> Task B ─┐ Task A ─┤ ├──> Task D └──> Task C ─┘

##Steps

  1. Task A is queued to run
  2. Task A is completed which queues Task B and Task C
  3. Task B and Task C are run in parallel
  4. When the last of Task B and Task C is completed, Task D is queued
  5. Task D is completed and completes the workflow