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.0

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.0
File Size Uploaded
did_it_land-0.1.0.tar.gz 21.7 kB Details

Built distribution (wheel)

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

Total release size: 47.4 kB

Release files / did_it_land-0.1.0.tar.gz

Download URL did_it_land-0.1.0.tar.gz
Size 21.7 kB
Tags Source
SHA-256 checksum
How to use checksums
09114befd5fbffe457951d27d75d8586c2fed6c5b391c581db480a47068d6532
BLAKE2b-256 checksum
How to use checksums
90a6dad7a58eceb16a91519ff166fd459fcd819a3a53e6e47c9f64a650a0d813
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 30, 2026.

Transparency log

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

Download URL did_it_land-0.1.0-py3-none-any.whl
Size 25.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
71267f63af92b25b31c2746e5f53d11a5dc3ef4231f9d60f53ba7b68ddf21a83
BLAKE2b-256 checksum
How to use checksums
a7330d7769df54466d12de52fc4b4aaae0bdc7c343f14a7b96b038c9305e9355
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 30, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.2

2 release files

0.1.1

2 release files

This release

0.1.0 This release

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