{"repo":"maxcountryman/underway","free":true,"listed":false,"github":"https://github.com/maxcountryman/underway","clone":"git clone https://github.com/maxcountryman/underway.git","description":"⏳ Durable step functions via Postgres.","language":"Rust","stars":171,"topics":["background-jobs","job-queue","postgresql","sqlx","work-queue"],"license":"Apache-2.0","category":"databases-storage","readme_excerpt":"underway ⏳ Durable background workflows on Postgres. 🎨 Overview Underway runs durable background workflows on the Postgres you already operate. Model business flows as typed Rust steps, execute durable side effects through activities, and recover cleanly across retries, restarts, and deploys. Key Features: - Recover from Failures Automatically Workflow progress and activity intent are persisted, so work resumes after restarts, crashes, and deploys. - Use the Postgres You Already Run No extra broker or orchestration layer; queue coordination and task claiming happen in PostgreSQL. - Model Business Flows in Typed Rust Build multi-step workflows with compile-time checked step inputs, outputs, and transitions. - Make Side Effects Durable and Replay-Safe InvokeActivity::call and InvokeActivity::emit persist side-effect intent, and registered activities are compile-time checked. - Operate with Production Controls Transactional using APIs, retries, cron scheduling, heartbeats, and fencing support reliable high-concurrency execution. 🤸 Usage Underway supports a few common patterns out of the box: 1. Build a typed workflow and run it with runtime() . 2. Use durable activity calls for side effects. 3. Enqueue and schedule atomically inside your own transaction. 1) Build and run a workflow 2) Durable side effects with activities 3) Enqueue and schedule in your transaction 🛟 Getting Help The [API docs][docs] include module-level walkthroughs and runnable snippets. Runnable examples ar","default_branch":null,"files":null,"tree":[],"storefront":"/r/maxcountryman","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/maxcountryman/underway/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}