Cesar Rodas 93e35fed20 Close double-spend races and atomicity gaps in the storage layer 6 дней назад
..
src 93e35fed20 Close double-spend races and atomicity gaps in the storage layer 6 дней назад
tests c6ef03c386 Kuatia: append-only, auditable, multi-asset UTXO-style ledger 1 неделя назад
Cargo.toml 7dee7fe3d0 Add accounting-mapping doc and ignore .DS_Store 1 неделя назад
README.md c715bd3924 Make the Store the atomic invariant boundary for commits 1 неделя назад

README.md

kuatia-storage

Storage abstraction for the kuatia ledger.

Defines the Store trait (composed of seven sub-traits), provides an in-memory implementation for tests, and exports a store_tests! conformance macro that any backend can use to validate its implementation.

Sub-traits

Trait Purpose
AccountStore Account CRUD and versioning
PostingStore Posting reads, reserve/release/finalize lifecycle (reserve/release carry a ReservationId)
TransferStore Transfer persistence and queries
SagaStore Saga state for crash recovery
EventStore Append-only ledger event log
BookStore Book (transfer policy scope) persistence
CommitStore commit_transfer — the single atomic commit boundary (postings + transfer + index + events)

Store is a blanket trait — any type implementing all seven sub-traits is a Store.

Conformance testing

use kuatia_storage::mem_store::InMemoryStore;

async fn new_store() -> InMemoryStore { InMemoryStore::new() }
kuatia_storage::store_tests!(new_store);

This generates a test for every Store method, run against any backend.