stitch-durable
Durable execution for long-running Python pipelines, using only the standard library
TL;DR
- What: Standard-library-only checkpointing for async Python pipelines, so a crashed run resumes instead of restarting
- Includes: SQLite checkpoints, retries with backoff, fallbacks, circuit breakers, audit trail
- Available: On PyPI (
pip install stitch-durable); born from my PyCon NL 2026 talk
Overview
stitch-durable grew out of my PyCon NL 2026 talk, "Fire, Forget, Regret", about what happens to long-running Python pipelines when something fails halfway through. The talk's live demo was an AI news pipeline that I killed with kill -9, cut off from wifi, and starved of its model and database. The plain version crashed or redid finished work. The durable version resumed with no duplicates, using one decorator.
What every async step gets
- A checkpoint in SQLite, so a rerun skips finished work
- Retries with backoff that respect a server's retry-after hint
- A fallback when retries run out, with
heal()to redo those steps later - Parking when every provider is down, plus circuit breakers
- Critical steps that halt the run and send an alert
- An audit trail of everything that happened to each item
Tech Stack
Python
asyncio
SQLite
Links
- GitHub
- PyPI ·
pip install stitch-durable - PyCon NL 2026 talk