Git Product home page Git Product logo

graph-bpmn's Introduction

Graph BPMN

Greenkeeper badge A BPMN 2.0 engine leveraging graph database technology

Paypal Build Status Gitter

This project is very much a work in progress, and I wouldn't recommend using it in production (YET).

What is BPMN?

Yet another BPMN engine?

There's a bunch of tools you can use as a BPMN executor written in every mainstream language (though mostly java) The thing that is different about this one is the persistence method, they all appear to use a traditional RDBMS such as mysql, postgres, etc. In some cases you might find one using a noSQL such as MongoDB. That database technology will always be an unavoidable bottle neck, both in the execution but also the analysis of the process.

So what does this one do thats so special?

The point of this project is to leverage the performance gain that can be achieved with a graph based database. The very nature of a graph database lends itself well to handling a workflow super efficiently. Which is the reason to why I couldn't 'just' write an adapter for activiti, camunda or one of the common very mature engines.

Compatible databases

I hate tightly coupling, and I have a healthy deep fear of commitment when it comes to software and technology. That said I feel sometimes you have to acknowledge that its the only viable way especially in this situation where theres only one technology thats viable to couple with. So for now, the only viable database to couple with is [orientdb] (http://orientdb.com/)

My goal with this project is to be able to do as much processing as possible in the database layer itself which will allow scaling in line with the great scalability story that orientdb already has.

My current definition of success will be when the workflow engine can handle over 100,000 requests a second on a large scale with some interesting self analytics within the process, which could offer some interesting realtime stats, e.g. "based on executions like this, how many steps left, how long a given task take to complete". Or perhaps even more interestingly break the strict process model if you could make a strong enough guess to what the conclusion will be.

Goals / Roadmap / Todo:

  • Write todo list
  • Decide on a licence
  • Decide on a way to receive donations
  • Add a CONTRIBUTING file
  • Initial setup of NPM, travis, gitter, etc
  • Skeleton of testing framework etc
  • Move this todo list into gherkin given/when/then tests
  • Define Vertex classes for start, task and end steps
  • Persist a simple workflow
  • Execute a persisted simple flow
  • Define Vertex class for Exclusive Gateways
  • Execute a flow with an exclusive gateway
  • Render a .dot representation of the graph
  • Parse a bpmn file in
  • Persist executions
  • Some sort of story for updates to the execution and migrating existing executions
  • Pause/Resume executions
  • Publish on npm
  • 1.0.0
  • RESTful API
  • Setup docker image
  • Publish docker image
  • Setup docker compose

BPMN 2.0 Feature support:

  • Start
  • End
  • Flows
    • Sequence Flow
    • Default Flow
    • Conditional Flow
  • Subprocesses
    • Subprocess
    • Call Activity
    • Event Subprocess
    • Transaction
  • Tasks
    • Service Task
    • User Task
    • Script Task
    • Business Rule Task
    • Manual Task
    • Receive Task
    • Undefined Task
    • Send Task
    • Receive Task (instantiated)
    • Undefined Task
  • Gateways
    • Exclusive Gateway
    • Inclusive Gateway
    • Parallel Gateway
    • Event Gateway
    • Complex Gateway
  • Choreographies
  • Pools
  • Participants / Swim lanes

Contributions

It'd be great if anyone else has time/energy/interest in this issues, pull requests, and conversations and donations are all very welcome.

Donations

Should you be generous enough to support this project financially then your money will be spent exclusively on sustaining development time on the project.

graph-bpmn's People

Contributors

chrisns avatar greenkeeper[bot] avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

gitter-badger

graph-bpmn's Issues

An in-range update of orientjs is breaking the build 🚨

Version 2.2.7 of orientjs just got published.

Branch Build failing 🚨
Dependency orientjs
Current Version 2.2.6
Type dependency

This version is covered by your current version range and after updating it in your project the build failed.

orientjs is a direct dependency of this project this is very likely breaking your project right now. If other packages depend on you it’s very likely also breaking them.
I recommend you give this issue a very high priority. I’m sure you can resolve this πŸ’ͺ

Status Details
  • ❌ continuous-integration/travis-ci/push The Travis CI build could not complete due to an error Details

Commits

The new version differs by 10 commits.

See the full diff

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

An in-range update of mocha is breaking the build 🚨

Version 4.1.0 of mocha was just published.

Branch Build failing 🚨
Dependency mocha
Current Version 4.0.1
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

mocha is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ❌ continuous-integration/travis-ci/push The Travis CI build could not complete due to an error Details

Release Notes v4.1.0

4.1.0 / 2017-12-28

This is mainly a "housekeeping" release.

Welcome @Bamieh and @xxczaki to the team!

πŸ›: Fixes

  • #2661: progress reporter now accepts reporter options (@canoztokmak)
  • #3142: xit in bdd interface now properly returns its Test object (@Bamieh)
  • #3075: Diffs now computed eagerly to avoid misinformation when reported (@abrady0)
  • #2745: --help will now help you even if you have a mocha.opts (@Zarel)

πŸŽ‰ Enhancements

  • #2514: The --no-diff flag will completely disable diff output (@CapacitorSet)
  • #3058: All "setters" in Mocha's API are now also "getters" if called without arguments (@makepanic)

πŸ“– Documentation

πŸ”© Other

Commits

The new version differs by 409 commits.

  • 6b9ddc6 Release v4.1.0
  • 3c4b116 update CHANGELOG for v4.1.0
  • 5be22b2 options.reporterOptions are used for progress reporter
  • ea96b18 add .fossaignore [ci skip]
  • adc67fd Revert "[ImgBot] optimizes images (#3175)"
  • ae3712c [ImgBot] optimizes images (#3175)
  • 33db6b1 Use x64 node on appveyor
  • 4a6e095 Run appveyor tests on x64 platform. Might enable sharp installation
  • 3abed9b Lint netlify-headers script
  • 119543e Add preconnect for doubleclick domain that google analytics results in contacting
  • bd5109e Remove crossorigin='anonymous' from preconnect hints. Only needed for fonts, xhr and es module loads
  • 123ee4f Handle the case where all avatars are already loaded at the time when the script exexecutes
  • 64deadc Specific value for inlining htmlimages to guarantee logo is inlined
  • 8f1ded4 https urls where possible
  • d5a5125 Be explicit about styling of screenshot images

There are 250 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of typescript is breaking the build 🚨

Version 2.6.1 of typescript was just published.

Branch Build failing 🚨
Dependency typescript
Current Version 2.5.3
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

typescript is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ❌ continuous-integration/travis-ci/push The Travis CI build could not complete due to an error Details

Release Notes TypeScript 2.6

For release notes, check out the release announcement

For new features, check out the What's new in TypeScript 2.6.

For breaking changes, check out the Breaking changes in TypeScript 2.6 page.

For API breaking changes, check out the API Breaking changes in TypeScript 2.6 page.

For the complete list of fixed issues, check out the issues fixed in TypeScript 2.6 RC and after TypeScript 2.6 RC.

Download:

Special thanks to all contributors to this release:

  • Adrian Leonhard
  • Alex Chugaev
  • Alex Eagle
  • Anders Hejlsberg
  • Andrew Casey
  • Andy Hanson
  • Armando Aguirre
  • Arthur Ozga
  • Basarat Ali Syed
  • Benjamin Lichtman
  • Charles Pierce
  • Daniel Rosenwasser
  • @falsandtru
  • Filipe Silva
  • Francois Wouts
  • Henry Mercer
  • Herrington Darkholme
  • Ivan Enderlin
  • Joe Calzaretta
  • Klaus Meinhardt
  • Magnus Kulke
  • Matt Bierner
  • Matt Mitchell
  • Mohamed Hegazy
  • Nathan Shively-Sanders
  • Paul van Brenk
  • Ron Buckton
  • Ryan Cavanaugh
  • Sheetal Nandi
  • Stas Vilchik
  • Taras Mankovski
  • Thomas den Hollander
  • Vakhurin Sergey
  • Wesley Wigham
  • Zeeshan Ahmed
  • Zev Spitz
Commits

The new version differs by 1177 commits ahead by 1177, behind by 85.

  • 477bdc7 Update LKG
  • 6bc04a9 Use lowercased names for generated locale directories (#19581)
  • 0f32f55 Make getCompletionEntryDetails and getCompletionEntrySymbol parameters non-optional (#19507) (#19592)
  • 1359a93 Update LKG
  • a7e172b Support multiple completions with the same name but different source module (#19455) (#19496)
  • c35e90e Merge pull request #19484 from Microsoft/reloadScriptsWithoutProject
  • 96c66a6 Add test case to verify reload works without open project
  • b16e6d4 Reload contents of file from disk irrespective of project presence and file already containing its own text
  • 6489a75 Update LKG
  • 1a1c672 Merge pull request #19445 from Microsoft/foundWhileSearchingNodeModules
  • 4e56347 Set the files found during node_modules search correctly when reusing existing program structure
  • aaaa280 Add the test case that fails and reports error for files not in root directory in watch mode
  • 3134111 Merge pull request #19434 from Microsoft/port-master-10-23
  • a362bbf Fix lint error
  • 02cc07c For @types installing quickfix, only activate for implicit-any module (#19394) (#19429)

There are 250 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of tslint is breaking the build 🚨

Version 5.8.0 of tslint was just published.

Branch Build failing 🚨
Dependency tslint
Current Version 5.7.0
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

tslint is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ❌ continuous-integration/travis-ci/push The Travis CI build could not complete due to an error Details

Release Notes v5.8.0

⚠️ Deprecations

  • [deprecation] typeof-compare is deprecated because typescript already does that check (#3286)
  • [deprecation] CLI argument --type-check is no longer necessary and will be removed in the next major version (#3322)

Updates to tslint:latest configuration

+    "ban-comma-operator": true,
+    "jsdoc-format": {
+        options: "check-multiline-start",
+    },
+    "no-duplicate-switch-case": true,
+    "no-implicit-dependencies": true,
+    "no-return-await": true,

πŸŽ‰ Features

πŸ›  Bugfixes & enhancements

Thanks to our contributors!

  • Klaus Meinhardt
  • Charles Samborski
  • Donald Pipowitch
  • Josh Goldberg
  • mmkal
  • Erik
  • Csaba Miklos
  • Dominik Moritz
  • Khalid Saifullah
  • Lukas Spieß
  • Merott Movahedi
  • Bowen Ni
  • ksvitkovsky
  • Hutson Betts
  • Caleb Eggensperger
  • Brent Erickson
  • Trivikram
  • Brandon Furtwangler
  • Pavel Zet
  • aervin_
  • Holger Jeromin
  • Danny Guo
  • Jeremy Morton
  • Cyril Gandon
  • Andy Hanson
  • yadan
FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.