{"repo":"thoven87/strand","free":true,"listed":false,"github":"https://github.com/thoven87/strand","clone":"git clone https://github.com/thoven87/strand.git","description":"Postgres-native durable workflow engine for Swift 6.3.**","language":"Swift","stars":18,"topics":["durable-execution","durable-workflows","postgres","swift-on-server","workflow-engine","background-jobs","workflow-orchestration","orchestration","scheduler","workflows"],"license":"Apache-2.0","category":"workflow-automation","readme_excerpt":"Strand Postgres-native durable workflow engine for Swift 6.3. No separate coordination service. No Redis. No Cassandra. Just Swift workers and Postgres. If a worker crashes mid-workflow the next worker that picks it up resumes from the last checkpoint. No work is duplicated, no state is lost. Documentation - Getting started — installation, first workflow, first worker - Core concepts — execution model, checkpointing, determinism - Activities — I/O, retries, heartbeats, timeouts - Workflows — orchestration, fan-out, sleep, signals - Scheduling — cron, intervals, catch-up - Signals and events — external wakeup - Retry strategies — backoff, non-retryable errors, deadlines - Testing — integration test helpers - Data pipelines — fan-out, multi-queue, crash recovery Quick start 1. Start Postgres 2. Add to Package.swift 3. Run Scheduling Declare recurring schedules on StrandService — they are upserted to the database when the service starts: For schedules created at runtime (e.g. from an HTTP API), call client.schedule(name:pattern:workflowType:input:) directly — it is always a live database write. See Scheduling for patterns, catch-up behaviour, time zones, and runtime management. Examples See Examples/ for complete runnable examples: Example What it shows --- --- HackerNewsSummary Multi-child fan-out with Ollama summarisation; @ActivityContainer GroundwaterPipeline 6.2 M-row data pipeline, parallel download, Ollama trend analysis CIPipeline DAG-style CI workflow with human-in-the-","default_branch":null,"files":null,"tree":[],"storefront":"/r/thoven87","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/thoven87/strand/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."}