Code Monkey home page Code Monkey logo

tardigrade's Introduction

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.

tardigrade's People

Contributors

slowli avatar dependabot[bot] avatar

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.