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)
| File | Size | Uploaded | |
|---|---|---|---|
| did_it_land-0.1.1.tar.gz | 21.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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