Executable portability evidence

One release.
Different environments.

Presolve builds the application before deployment selection. The public proofs then evaluate and execute those exact release bytes through materially different providers and fail if the application identity changes.

The invariant

Deployment selection must not mutate the application.

Every same-release proof records both the canonical Presolve release digest and the raw .presolved archive SHA-256 before environment selection, then verifies both after planning and execution.

Build once
application.presolved
  • application requirements
  • workload artifact identity
  • canonical release digest
  • no selected provider/environment
P
Presolvesame release bytes
Decide later
presolve.env.toml
  • execution support
  • provider supply
  • semantic features
  • stable provider IDs
Coverage

The proof suite is no longer just KV.

Each slice isolates a different kind of deployment decision and provider-semantic pressure.

01 · same-releaseKV

Memory, Redis, and Cloudflare Workers KV planning; memory and Redis execution by default; optional live Cloudflare execution.

02 · same-releaseObject storage

Memory and S3-compatible storage through put/head/list/streamed-get/delete semantics.

03 · same-releaseRelational SQL

One SQL Component plus one conformance suite executed through SQLite and PostgreSQL.

04 · capability proofWork queue

Leased delivery, retry, redelivery, ack, stale receipt invalidation, and immutable release execution through the runtime path.

05 · workload pathComponents + OCI

Immutable workload identity and execution/materialization paths are tested separately from provider selection.

06 · negative evidenceCompatibility rejection

Presolve reports structured problems when workload, resource, version, or semantic requirements cannot be satisfied.

Run it

Four public commands.

bash ./demo/portability/run.shKV flagship · memory · Redis · Cloudflare plan
bash ./scripts/check-object-portability.shObjects · memory ↔ S3-compatible
bash ./scripts/check-sql-portability.shSQL · SQLite ↔ PostgreSQL + shared conformance
bash ./scripts/check-queue-portability.shQueue · current leased-delivery capability proof
The default KV proof requires no cloud credentials. Live Cloudflare execution is opt-in via --cloudflare. The queue command currently proves one provider/runtime path; cross-provider queue substitution is the next queue milestone.
Flagship KV result

Three plans, two default executions, unchanged identity.

portability-localmemory-kv · in-process · resolved + executed
portability-redisredis-kv · RESP/TCP · resolved + executed
portability-cloudflarecloudflare-kv · managed service · resolved; optional live execution
release digest: sha256:fa8cb59cf09dd5ed507d865fd4b739f6229e1422367bfe1f9afdfba6adc57c5e
archive sha256: 45e6f9dca20dce54337f34f403e772e510a1f6b6a333a44112d82c09af014344

release digest unchanged: yes
archive sha256 unchanged: yes

PASS — one .presolved release, three plans,
two provider realizations, zero application rebuilds.
Why breadth matters

Real providers expose different abstraction failures.

Provider familyDifference exposedWhat Presolve learned
Redis / Cloudflare KVin-process vs TCP vs managed HTTP/eventual operational behaviorcapability semantics must stay independent from transport/realization
S3-compatible objectsidempotent delete, key-size limits, signed streaming constraintsprovider limits and stronger mutation semantics cannot be hidden
SQLite / PostgreSQLdynamic vs strict typing, SQL dialects, zero-row metadataportable result/transaction semantics are separate from SQL syntax portability
Leased work queuereceipts, leases, retries, duplicate deliveryat-least-once settlement semantics must be explicit; triggering is separate topology
What is proven

Specific claims, not universal portability.

Application release identity is independent from environment selection. Detached releases can reconstruct their requirements. Different provider IDs can satisfy the same semantic requirement. Concrete runtime settings stay outside application identity.

The proofs do not claim every application runs everywhere, all provider semantics are identical, or Presolve is a scheduler/control plane.

Developer validation

Reproduce it, then challenge the boundary.

The most useful feedback is where a real deployment requirement cannot be represented honestly: missing semantic properties, invalid provider equivalence, workload constraints, or runtime details that leak into application identity.