slowli / tardigrade

WASM workflow automation engine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tardigrade: WASM workflow automation engine

Build Status License: MIT OR Apache-2.0

Tardigrade is a Rust library for workflow automation, aka (business) process automation / orchestration. It allows defining workflows as a WASM module and running it in a fully sandboxed, controlled environment.

What's a workflow, anyway?

A key observation is that a workflow is essentially a future that interacts with the external world via well-defined interfaces:

  • Arguments provided to the workflow on creation
  • Inbound and outbound message channels
  • Timers
  • Tasks

That is, given an async runtime that has capabilities to track the progress of external futures, and is able to persist the progress of the workflow at wait points, the workflow itself can be represented as an ordinary future (i.e., just code)! As such, concurrency primitives (fork / join, fork / select, etc.) are not the responsibility of the workflow engine – they come for free with the programming language / tooling; a workflow can do anything the underlying tooling can do.

See architecture for more technical details.

Project status 🚧

Extremely early-stage (approximately the first PoC).

Project naming

Tardigrades are micro-animals known for resilience to extreme environments. Tardigrades are among the few groups of species able to suspend their metabolism for continuous periods (think years) and later come back to life.

Alternatives / similar tools

Camunda is an example of a BPMN-based process orchestration engine. Newer approaches to process orchestration include Temporal (an example of code-based workflow definition) and Netflix Conductor.

Contributing

All contributions are welcome! See the contributing guide to help you get involved.

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in tardigrade by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

WASM workflow automation engine

License:Apache License 2.0


Languages

Language:Rust 99.3%Language:Shell 0.7%