docs: add keriox_sdk README documenting KeriRuntime and Controller#74
Open
seriouscoderone wants to merge 6 commits intoTHCLab:masterfrom
Open
docs: add keriox_sdk README documenting KeriRuntime and Controller#74seriouscoderone wants to merge 6 commits intoTHCLab:masterfrom
seriouscoderone wants to merge 6 commits intoTHCLab:masterfrom
Conversation
…tecture Gate redb behind `storage-redb` feature flag (default ON) in keri-core and teliox so the core protocol logic can compile and run without redb. This enables future alternative storage backends (e.g., DynamoDB for serverless). Key changes: - Split EventStorage constructors: generic `new()` (no mailbox) vs `new_redb()` (RedbDatabase with mailbox) vs `new_with_mailbox()` (inject) - Make mailbox_data an Option<MailboxData> to support non-redb backends - Remove Any bound from EventValidator - Gate TelLogDatabase, teliox EscrowDatabase, and escrow module behind storage-redb feature - Genericize teliox escrow structs over K: EventDatabase for KEL storage - Add in-memory MemoryDatabase implementing all database traits for validation and testing - Move rkyv_adapter to database::rkyv_adapter (not under database::redb) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace the concrete HashMap-based NotificationBus with a trait-based dispatch architecture. NotificationBus is now a Clone-able wrapper around Arc<dyn NotificationDispatch>, enabling alternative notification backends (e.g. SQS for serverless) without adding generic type parameters anywhere in the codebase. - Add NotificationDispatch trait with dispatch() and register_observer() - Extract current HashMap logic into InProcessDispatch (RwLock + OnceLock) - Add NotificationBus::from_dispatch() for custom implementations - Change register_observer from &mut self to &self across all processors - Add RwLockingError variant to keri-core Error enum Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace the anonymous 5-tuple return from default_escrow_bus with a named EscrowSet<D> struct, accept an optional NotificationBus parameter, and introduce KeriRuntime<D> in keri-sdk as a shared composition layer. These changes address three problems that block serverless (Lambda) use: - Anonymous tuple was fragile: callers positionally destructured five Arc'd escrows and adding a sixth would break every call site. EscrowSet gives named fields so callers pick what they need. - Bus couldn't be injected: default_escrow_bus always created an in-process NotificationBus internally. Lambda handlers need SQS-backed dispatch so notifications fan out to queues instead of running inline. Accepting Option<NotificationBus> lets callers pass a custom bus while None preserves existing default behavior. - Controller buried its internals: the SDK Controller created processor, storage, bus, and escrows in new(), discarded escrows, and kept fields private. KeriRuntime<D> extracts the shared KERI processing stack (processor, storage, escrows, notification_bus) into a standalone public struct so Lambda handlers can be thin shells — deserialize request, call runtime, serialize response. All 13 callers of default_escrow_bus updated. Controller<D,T> now composes over KeriRuntime<D> via a public `kel` field. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
544d21e to
0e29bdc
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
keriox_sdk/README.mddocumenting the SDK's key typesKeriRuntime<D>(standalone KERI processing stack),Controller<D,T>(KERI+TEL), andIdentifier<D>Test plan
🤖 Generated with Claude Code