Petri Flow alternatives and similar gems
Based on the "workflow engine" category.
Alternatively, view Petri Flow alternatives based on common mentions on social networks and blogs.
-
Flow Core
FlowCore is a Rails engine to help you build your automation or business process application.
CodeRabbit: AI Code Reviews for Developers

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Petri Flow or a related project?
README
Petri Flow

Workflow engine for Rails.
Features
- Full petri net features support (seq, parallel, iterative, timed, automitic etc.)
- Both approval workflow and business workflow.
- Simple web admin for workflow definition and case management.
- Build-in simple dynamic form.
- Replaceable dynamic form.
- Support sub workflow.
- Graph screen for workflow definition.
- Graph screen for case and token migration.
- Powerful guard expression.
- MySQL and Postgres Support.
- Powerful assignment management.
- Flexible integration of organizational structure system(role, group, position or department etc.)
Docs
- Petri-Nets and Workflows
- Workflow Conceptual Guide
- Workflow Concepts Reference
- Petri Flow ERD
- Developer Doc
Screenshots
iterative routing
parallel_routing
guard
case state graph
Installation
Add this line to your application's Gemfile:
gem 'petri_flow', require: 'wf'
And then execute:
$ bundle
Install graphviz
brew install graphviz
Migration:
bundle exec rake wf:install:migrations
bundle exec rails db:create
bundle exec rails db:migrate
bundle exec rails db:seed
Usage
Add wf_config:
# config/initializers/wf_config.rb
Wf.user_class = "::User"
Wf.org_classes = { group: "::Group" }
Set parties:
For normal org model, for example group or role etc.
module Wf
class Group < ApplicationRecord
has_many :users
include Wf::ActsAsParty
acts_as_party(user: false, party_name: :name)
end
end
For user model:
module Wf
class User < ApplicationRecord
belongs_to :group, optional: true
include Wf::ActsAsParty
acts_as_party(user: true, party_name: :name)
end
end
then
bundle exec rails
visit:
http://localhost:3000/wf
Testing
- RAILS_ENV=test rake app:db:migrate && RAILS_ENV=test rake app:db:test:prepare && bundle exec rake test
Contributing
Contribution directions go here.
License
The gem is available as open source under the terms of the MIT License.
*Note that all licence references and agreements mentioned in the Petri Flow README section above
are relevant to that project's source code only.