Skip to main content

did-it-land

Your durable worker crashed mid-tool-call. Did the charge actually fire, and how do you reverse it? did-it-land is the per-vendor knowledge that answers both, as data.

Durable and saga engines resume a crashed workflow from a checkpoint, then leave you the hard part: query the vendor to see whether the side-effect landed, and write your own compensation. did-it-land ships that knowledge as a small corpus of effect capsules plus a thin runtime.

pip install "did-it-land[http]"
did-it-land demo
from did_it_land import bundled, reconcile, unwind, HttpxTransport

stripe = HttpxTransport("https://api.stripe.com", headers={"Authorization": f"Bearer {key}"})
charge = bundled().get("stripe.charge")

key = "sk_test_..."                # your Stripe test-mode key
order_started_at = "1700000000"    # unix seconds, recorded when the order began
context = {"order_id": "ORD-1", "created_after": order_started_at}
outcome = reconcile(charge, context, transport=stripe)
if outcome.landed:
    ...        # the charge already happened, skip the retry

unwind(charge, {"payment_intent_id": "pi_123"}, transport=stripe)

v1 ships four capsules: stripe.charge, s3.delete_object, github.merge_pr, and postgres.insert. Full docs, the DBOS adapter, and the TypeScript runtime are in the repository.

Homepage and docs: https://github.com/netsatsawat/did-it-land

Written by Satsawat Natakarnkitkul. License: MIT.

Release files for did-it-land 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for did-it-land 0.1.1
File Size Uploaded
did_it_land-0.1.1.tar.gz 21.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for did-it-land 0.1.1
File Interpreter ABI Platform
did_it_land-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 47.4 kB

Release files / did_it_land-0.1.1.tar.gz

Download URL did_it_land-0.1.1.tar.gz
Size 21.8 kB
Tags Source
SHA-256 checksum
How to use checksums
3dad6522b6297058f9f9832ca8b2438d26530933dc039bfc49b5d4e641c8eabb
BLAKE2b-256 checksum
How to use checksums
7ea9544a89ed0b05f3071f4d0798f56e38d6e0385afceb1e730e8c1816334a9c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release files / did_it_land-0.1.1-py3-none-any.whl

Download URL did_it_land-0.1.1-py3-none-any.whl
Size 25.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9025119a8cfd3b15a27b2d52220bd82d7de0c4b8a12474f3389dfefbe79f30a5
BLAKE2b-256 checksum
How to use checksums
188d5e17cbf7daab7613c4877218aba2965e975ff159e03d9366b3eb7a99d98a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.2

2 release files

This release

0.1.1 This release

2 release files

0.1.0

2 release 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