Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

durablestack-python

DurableStack Python runtime (in active development): durable background jobs and recurring scheduling with platform-compatible contracts.

Status

This package has completed Phase 4 (provider parity).

Implemented so far:

  • Phase 0: scaffold, contracts/constants, validators baseline, docs
  • Phase 1: in-memory runtime/store with lease fencing, retries, recurring materialization, retention, parity tests
  • Phase 2: PostgreSQL provider, migrations, schema verification, Postgres store/runtime factory, integration tests
  • Phase 3: hosted ingestion + runtime-control sync services with contract validators and golden payload fixtures
  • Phase 4: SQLite, MySQL, and SQL Server providers implemented with shared contract coverage

Observability note:

  • We are explicitly applying lessons from the Node.js rollout around hosted API sync (tenant/client-secret auth, endpoint safety, retry policy, idempotency, shutdown flush). The Python ingestion sync foundation now includes these guardrails and dedicated tests.

Key documents

  • ARCHITECTURE.md
  • CONTRACTS.md
  • PROVIDER_PARITY.md
  • RELEASING.md

Local development

Python 3.11+ is required.

Install dev dependencies:

pip install -e ".[dev]"

Run tests:

pytest

Run lint + typing:

ruff check .
mypy

Run Postgres integration tests (optional):

set DURABLESTACK_TEST_POSTGRES_DSN=postgresql://user:pass@localhost:5432/dbname
pytest -q tests/test_postgres_integration.py

Run SQLite integration tests:

pytest -q tests/test_sqlite_integration.py

Run MySQL integration tests (optional):

set DURABLESTACK_TEST_MYSQL_DSN=mysql://user:pass@localhost:3306/dbname
pytest -q tests/test_mysql_integration.py

Run SQL Server integration tests (optional):

set DURABLESTACK_TEST_SQLSERVER_DSN=Driver={ODBC Driver 18 for SQL Server};Server=localhost,1433;Database=durablestack;Uid=sa;Pwd=Your_password123;Encrypt=no;TrustServerCertificate=yes;
pytest -q tests/test_sqlserver_integration.py

Provider matrix

Provider Runtime factory Driver dependency Integration env var Integration test
InMemory create_durable_stack(...) none none tests/test_runtime_phase1.py
PostgreSQL create_durable_stack_postgres(...) asyncpg DURABLESTACK_TEST_POSTGRES_DSN tests/test_postgres_integration.py
SQLite create_durable_stack_sqlite(...) stdlib sqlite3 none tests/test_sqlite_integration.py
MySQL create_durable_stack_mysql(...) pymysql DURABLESTACK_TEST_MYSQL_DSN tests/test_mysql_integration.py
SQL Server create_durable_stack_sqlserver(...) pyodbc DURABLESTACK_TEST_SQLSERVER_DSN tests/test_sqlserver_integration.py

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

durablestack-0.1.0b1.tar.gz (59.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

durablestack-0.1.0b1-py3-none-any.whl (64.6 kB view details)

Uploaded Python 3

File details

Details for the file durablestack-0.1.0b1.tar.gz.

File metadata

  • Download URL: durablestack-0.1.0b1.tar.gz
  • Upload date:
  • Size: 59.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for durablestack-0.1.0b1.tar.gz
Algorithm Hash digest
SHA256 9d25334614a4d9ff8cac1e13cd4129625424315d155cc519483b9c85b9405aad
MD5 f96287ac420d9886d9dd1caba543951d
BLAKE2b-256 765b3090af08d7a9b1f37a5da096a867da34e50f1f0f747e53bf94a39e54d69c

See more details on using hashes here.

File details

Details for the file durablestack-0.1.0b1-py3-none-any.whl.

File metadata

  • Download URL: durablestack-0.1.0b1-py3-none-any.whl
  • Upload date:
  • Size: 64.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for durablestack-0.1.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 7fb627ff1c03f4cb3a88a2355a0dd83f7660be156981f03f054c859759e1e483
MD5 d3b4549bfe7d70b2b67d1b325499646d
BLAKE2b-256 33d7b57a035743c65a2907fd4d282b8eafe70d8b0212600261ec1f67dd4af47c

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0b1 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page