Skip to content

Add synchronous IndexedMap support for remote stores - #61

Merged
forhappy merged 1 commit into
mainfrom
codex/indexed-map-remote-sync
Aug 3, 2026
Merged

Add synchronous IndexedMap support for remote stores#61
forhappy merged 1 commit into
mainfrom
codex/indexed-map-remote-sync

Conversation

@forhappy

@forhappy forhappy commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add a shared BlockingRemoteProllyStore that exposes the synchronous Store, manifest, scan, strict transaction, and IndexedStore contracts over native async remote backends
  • add first-class Sync*Store aliases for PostgreSQL, MySQL, Redis, Turso, DynamoDB, Cosmos DB, and Spanner
  • safely bridge calls made inside existing Tokio runtimes and own provider runtime lifecycle, including clean final drop from async contexts
  • extend every provider conformance suite with the real synchronous engine.indexed_map(...) workflow and document production usage

Correctness

IndexedMap continues to pre-publish immutable content-addressed nodes, then validates and advances its sole canonical collection root through the provider native strict transaction. A conflict publishes no visible state. This keeps the visibility transaction small for DynamoDB and Cosmos DB service limits while preserving immediate readability after an applied root.

Verification

  • cargo test --features tokio
  • cargo clippy --features tokio --all-targets -- -D warnings
  • cargo +1.89.0 check --features tokio --all-targets
  • RUSTDOCFLAGS=-D warnings cargo doc --no-deps --features tokio
  • default-feature cargo check --all-targets
  • all seven adapter crates: cargo check --all-targets, strict clippy, and doctests
  • Turso local synchronous IndexedMap integration test
  • PostgreSQL, MySQL, Redis, DynamoDB, Cosmos DB, and Spanner live IndexedMap conformance tests remain credential-gated
  • ./scripts/check-secondary-index-cutover.sh

@forhappy
forhappy merged commit 1670d01 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