obelisk  by obeli-sk

Workflow engine built on the WASM Component Model

created 1 year ago
282 stars

Top 93.5% on sourcepulse

GitHubView on GitHub
Project Summary

Obelisk is a deterministic workflow engine designed for reliable, replayable, and auditable task orchestration. It targets developers building periodic tasks, background jobs, batch processes, and end-to-end tests, offering resilience through automatic retries and a schema-first approach leveraging the WASM Component Model for type safety.

How It Works

Obelisk utilizes the WASM Component Model and WIT IDL to define workflows and activities, ensuring end-to-end type safety and enabling code generation for API bindings. Workflows are deterministic, meaning they can be reliably replayed from a persistent execution log (SQLite), facilitating debugging and recovery. Activities, which must be idempotent, benefit from automatic retries on errors, timeouts, and WASM traps, with persistent results. The runtime supports WASI for HTTP requests and webhook endpoints, with a work-stealing executor for efficient concurrency management.

Quick Start & Requirements

  • Install: Download pre-built binary via curl -L --tlsv1.2 -sSf https://raw.githubusercontent.com/obeli-sk/obelisk/main/download.sh | bash or use cargo binstall obelisk. Docker image getobelisk/obelisk is also available.
  • Prerequisites: Building from source requires protoc. Nix can manage development dependencies.
  • Setup: Running the server is obelisk server run.
  • Docs: Getting Started Guide available.

Highlighted Details

  • Deterministic execution for replayability and crash resilience.
  • Schema-first design with WASM Component Model and WIT IDL for type safety.
  • Automatic retries for activities on errors, timeouts, and panics.
  • WASI support for HTTP requests and webhook endpoints.

Maintenance & Community

  • Project is pre-release with active development.
  • Discussions are encouraged via GitHub Discussions.
  • A Contributor License Agreement (CLA) is required for contributions.

Licensing & Compatibility

  • License: Not explicitly stated in the README.
  • Compatibility: Suitable for commercial use, but the pre-release status implies potential breaking changes.

Limitations & Caveats

This project is pre-release, with a warning that CLI, gRPC, WIT, and database schemas are subject to change. Distributed sagas are planned but not yet implemented.

Health Check
Last commit

13 hours ago

Responsiveness

Inactive

Pull Requests (30d)
11
Issues (30d)
1
Star History
111 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.