Skip to content

Add native async IndexedMap API - #62

Merged
forhappy merged 3 commits into
mainfrom
codex/async-indexed-map
Aug 3, 2026
Merged

Add native async IndexedMap API#62
forhappy merged 3 commits into
mainfrom
codex/async-indexed-map

Conversation

@forhappy

@forhappy forhappy commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

What changed

  • add native AsyncProlly::indexed_map(...).await coordination over AsyncStore, async manifests, and strict async transactions
  • add async source mutation, snapshot/query paging and scans, verification, repair, index lifecycle, and retention APIs
  • preserve the existing canonical IndexedMap state encoding, snapshot identity, cursor format, and one-root visibility protocol across sync and async engines
  • use ordered native async multi-reads for mutation inputs and source-record joins, plus native async node publication and root transactions
  • add shared async remote-backend conformance coverage for PostgreSQL, MySQL, Redis, Turso, DynamoDB, Cosmos DB, and Spanner
  • document async-first usage for remote services while retaining synchronous facades for blocking applications

Why

Remote-first applications should not have to run the synchronous IndexedMap facade on blocking workers. The native async API keeps executor cancellation, timeouts, scheduling, and connection-pool backpressure effective while preserving the exact atomicity and compatibility guarantees of the synchronous coordinator.

Correctness

The canonical collection root remains the only visibility transition. Candidate source, index, snapshot, and state nodes are confirmed readable before a strict transaction validates and advances that root. Conflicts reload the complete state and retry; failed commits cannot expose candidate source or index state.

Validation

  • cargo test --features tokio
  • cargo clippy --features tokio --all-targets -- -D warnings
  • RUSTDOCFLAGS='-D warnings' cargo doc --no-deps --features tokio
  • cargo +1.89.0 check --features tokio --all-targets
  • cargo check --all-targets
  • ./scripts/check-secondary-index-cutover.sh
  • all-target check, strict Clippy, and doctests for PostgreSQL, MySQL, Redis, Turso, DynamoDB, Cosmos DB, and Spanner adapters
  • Turso local native async IndexedMap integration test

@forhappy
forhappy marked this pull request as ready for review August 3, 2026 05:40
@forhappy
forhappy merged commit 4edc0ba into main Aug 3, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant