All Projects → hyperflow-wms → Hyperflow

hyperflow-wms / Hyperflow

Licence: mit
HyperFlow: a scientific workflow engine

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Hyperflow

Tactic
Open source remote collaboration platform used for configuring and deploying enterprise Workflow solutions.
Stars: ✭ 301 (+467.92%)
Mutual labels:  workflow-engine, workflow
Argo Workflows
Workflow engine for Kubernetes
Stars: ✭ 10,024 (+18813.21%)
Mutual labels:  workflow-engine, workflow
Jug
Parallel programming with Python
Stars: ✭ 337 (+535.85%)
Mutual labels:  workflow-engine, workflow
Workflow Core
Lightweight workflow engine for .NET Standard
Stars: ✭ 3,605 (+6701.89%)
Mutual labels:  workflow-engine, workflow
Prefect
The easiest way to automate your data
Stars: ✭ 7,956 (+14911.32%)
Mutual labels:  workflow-engine, workflow
Sciluigi
A light-weight wrapper library around Spotify's Luigi workflow library to make writing scientific workflows more fluent, flexible and modular
Stars: ✭ 290 (+447.17%)
Mutual labels:  workflow-engine, workflow
Utask
µTask is an automation engine that models and executes business processes declared in yaml. ✏️📋
Stars: ✭ 374 (+605.66%)
Mutual labels:  workflow-engine, workflow
CaseManagement
CMMN engine implementation in dotnet core
Stars: ✭ 16 (-69.81%)
Mutual labels:  workflow, workflow-engine
Django River
Django workflow library that supports on the fly changes ⛵
Stars: ✭ 609 (+1049.06%)
Mutual labels:  workflow-engine, workflow
Smartflow Sharp
基于C#语言研发的Smartflow-Sharp工作流组件,该工作流组件的特点是简单易用、方便扩展、支持多种数据库访问、高度可定制化,支持用户按需求做功能的定制开发,节省用户的使用成本
Stars: ✭ 594 (+1020.75%)
Mutual labels:  workflow-engine, workflow
Conductor
Distributed workflow server
Stars: ✭ 281 (+430.19%)
Mutual labels:  workflow-engine, workflow
Galaxy
Data intensive science for everyone.
Stars: ✭ 812 (+1432.08%)
Mutual labels:  workflow-engine, workflow
Arvados
An open source platform for managing and analyzing biomedical big data
Stars: ✭ 274 (+416.98%)
Mutual labels:  workflow-engine, workflow
Rails workflow
Check Wiki for details
Stars: ✭ 295 (+456.6%)
Mutual labels:  workflow-engine, workflow
tukio
Tukio is an event based workflow generator library
Stars: ✭ 27 (-49.06%)
Mutual labels:  workflow, workflow-engine
Pvm
Build workflows, activities, BPMN like processes, or state machines with PVM.
Stars: ✭ 348 (+556.6%)
Mutual labels:  workflow-engine, workflow
tumbleweed
Lightweight workflow engine microservice implement BPMN 2.0
Stars: ✭ 23 (-56.6%)
Mutual labels:  workflow, workflow-engine
nactivity
workflow engine activity activiti
Stars: ✭ 55 (+3.77%)
Mutual labels:  workflow, workflow-engine
Easy Flows
The simple, stupid workflow engine for Java
Stars: ✭ 433 (+716.98%)
Mutual labels:  workflow-engine, workflow
Titanoboa
Titanoboa makes complex workflows easy. It is a low-code workflow orchestration platform for JVM - distributed, highly scalable and fault tolerant.
Stars: ✭ 787 (+1384.91%)
Mutual labels:  workflow-engine, workflow

HyperFlow: a scientific workflow management system

HyperFLow

Description

HyperFlow is a Workflow Management System (WMS) dedicated for scientific workflows.

Browse the wiki pages to learn more about the HyperFlow workflow model.

Getting started

Installation

  • Install Node.js (http://nodejs.org)
  • Install Redis (http://redis.io)
  • Install HyperFlow:
    npm install https://github.com/hyperflow-wms/hyperflow/archive/{version}.tar.gz (where {version} is for example v1.3.38)
  • For latest features, install from the master branch:
    npm install https://github.com/hyperflow-wms/hyperflow/archive/master.tar.gz
  • Add <install_root>/node_modules/.bin to your path

Running locally

  • Start the redis server: redis-server
  • Run example workflows using command hflow run <wf_directory>, for example:
    hflow run ./examples/Sqrsum

Running locally using Docker images

  • Use the latest Docker image for the HyperFlow engine, published in Docker Hub as hyperflowwms/hyperflow
  • You can build the image yourself: make container
  • Start redis container:
    docker run -d --name redis redis --bind 127.0.0.1
  • Run workflow via HyperFlow container, for example:
docker run -a stdout -a stderr --rm --network container:redis \
       -e HF_VAR_WORKER_CONTAINER="hyperflowwms/soykb-workflow-worker" \ 
       -e HF_VAR_WORK_DIR="$PWD/input" \ 
       -e HF_VAR_HFLOW_IN_CONTAINER="true" \
       -e HF_VAR_function="redisCommand" \
       -e REDIS_URL="redis://127.0.0.1:6379" \
       --name hyperflow \
       -v /var/run/docker.sock:/var/run/docker.sock \
       -v $PWD:/wfdir \
       --entrypoint "/bin/sh" hyperflowwms/hyperflow -c "apk add docker && hflow run /wfdir"

Where

  • hyperflowwms/soykb-workflow-worker is the name of the workflow worker container (Soykb in this case)
  • current directory contains workflow.json
  • subdirectory inputs contains workflow input data

Outputs:

  • Directory inputs will contain files generated by the workflow run
  • Directory inputs/logs-hf will contain logs of all workflow jobs

Running in a Kubernetes cluster

See HyperFlow Kubernetes deployment project for more information.

Running in a distributed infrastructure using the RabbitMQ executor

  • Start the RabbitMQ container: docker run -d --name rabbitmq rabbitmq:3
  • Add option -e AMQP_URL=amqp://rabbitmq
  • More information in the hyperflow-amqp-executor project (warning: currently not maintained and not tested with latest HyperFlow versions)

Local configuration files

You can provide workflow configuration through local configuration files:

  • workflow.config.json -- main configuration file
  • workflow.config.{name}.json -- any number of secondary configuration files

The content from all configuration files will be merged and passed to workflow functions via context.appConfig. For example for files:

workflow.config.json:
{
  "main": "mainValue"
}

workflow.config.foo.json:
{
   "secondary": "secondaryValue"
}

The following will be passed in context.appConfig:

{
  "main": "mainValue",
  "foo": {
     "secondary": "secondaryValue"
  }
}

HyperFlow server

The HyperFlow engine can be started in a server mode using command: hflow start-server

If succesfully started, the server prints its URL:

HyperFlow server started at http://localhost:38775

Workflows can be run through the HyperFlow server as follows:

hflow run --submit=<hyperflow_server_url> <workflow_dir>

Currently <workflow_dir> must be a local directory accessbile by the server. This allows running multiple workflows (concurrently) using the same instance of the HyperFlow engine.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].