# Obelisk Obelisk is a deterministic durable execution engine. Prefer JavaScript unless the user explicitly wants Rust/WASM. ## Default authoring path - JavaScript components are plain `.js` files with WIT-defined signatures. - Activities are idempotent units of side-effecting work and can be retried automatically. - Workflows are deterministic and replayable. They orchestrate child executions - workflows and activities, and durable timers. - Webhook endpoints are HTTP handlers that can spawn executions. - Deployments are versioned. Running workflows can be paused, replayed, advanced step by step, or automatically replayed and upgraded when code changes between deployments. - All functions are identified by an FFQN (`namespace:package/interface.function`) and typed with WIT. - JS components declare their types inline in `deployment.toml` — no WIT files needed. - Every function must return a fallible type: `result`, `result`, `result`, or `result` where `E` is a variant containing `execution-failed`. See the Activities and Workflows concept pages for details. ## Common design patterns - [Cleanup supervisor / saga](https://obeli.sk/docs/v0.39.4/patterns/cleanup-supervisor/) - [Parallel fan-out and durable polling](https://obeli.sk/docs/v0.39.4/js/js-patterns/) - [Human-in-the-loop signals with stub activities](https://obeli.sk/docs/v0.39.4/concepts/activities/stub/) ## Docs - [Programmatic access](https://obeli.sk/docs/v0.39.4/programmatic-access/) - [Configuration](https://obeli.sk/docs/v0.39.4/configuration/) - [Command Line Interface](https://obeli.sk/docs/v0.39.4/cli/) - [Concepts](https://obeli.sk/docs/v0.39.4/concepts/) - [Concepts / Deployments](https://obeli.sk/docs/v0.39.4/concepts/deployments/) - [Concepts / Execution States](https://obeli.sk/docs/v0.39.4/concepts/execution-states/) - [Concepts / Execution Log](https://obeli.sk/docs/v0.39.4/concepts/execution-log/) - [Concepts / Structured Concurrency](https://obeli.sk/docs/v0.39.4/concepts/structured-concurrency/) - [Concepts / Function Fully Qualified Name (FFQN)](https://obeli.sk/docs/v0.39.4/concepts/ffqn/) - [Concepts / Identifiers](https://obeli.sk/docs/v0.39.4/concepts/identifiers/) - [Concepts / Runtime Suppport](https://obeli.sk/docs/v0.39.4/concepts/runtime-support/) - [Concepts / Webhook Endpoints](https://obeli.sk/docs/v0.39.4/concepts/webhook-endpoints/) - [Concepts / WIT Reference](https://obeli.sk/docs/v0.39.4/concepts/wit-reference/) - [Concepts / Logging](https://obeli.sk/docs/v0.39.4/concepts/logging/) - [Concepts / Extensions](https://obeli.sk/docs/v0.39.4/concepts/extensions/) - [Concepts / Cron (Periodic Tasks)](https://obeli.sk/docs/v0.39.4/concepts/cron/) - [JavaScript](https://obeli.sk/docs/v0.39.4/js/) - [JavaScript / Getting Started with Obelisk](https://obeli.sk/docs/v0.39.4/js/getting-started/) - [JavaScript / Getting Started: Saga Pattern with Fly.io](https://obeli.sk/docs/v0.39.4/js/getting-started-fly-agent/) - [JavaScript / JS Components](https://obeli.sk/docs/v0.39.4/js/js-components/) - [JavaScript / JS Activities](https://obeli.sk/docs/v0.39.4/js/js-activities/) - [JavaScript / JS Workflows](https://obeli.sk/docs/v0.39.4/js/js-workflows/) - [JavaScript / JS Webhooks](https://obeli.sk/docs/v0.39.4/js/js-webhooks/) - [JavaScript / JS Patterns & Examples](https://obeli.sk/docs/v0.39.4/js/js-patterns/) - [Common Design Patterns](https://obeli.sk/docs/v0.39.4/patterns/) - [Common Design Patterns / Cleanup Supervisor (Saga)](https://obeli.sk/docs/v0.39.4/patterns/cleanup-supervisor/) - [WASM (Rust)](https://obeli.sk/docs/v0.39.4/wasm/) - [WASM (Rust) / Getting Started with Obelisk (Rust / WASM)](https://obeli.sk/docs/v0.39.4/wasm/getting-started/) - [WASM (Rust) / Rust Components](https://obeli.sk/docs/v0.39.4/wasm/rust-components/) - [WASM (Rust) / HTTP Client (Rust)](https://obeli.sk/docs/v0.39.4/wasm/http-client/)