Application Layer
Your agents live here. They use the layers below without caring about crypto, transport, or saga mechanics.
The kernel never imports the extensions. Extensions never import the application. Every layer is independently testable and replaceable.
protocol layer stack · dependencies ↓
Your agents live here. They use the layers below without caring about crypto, transport, or saga mechanics.
Multi-agent coordination. SagaEngine fans out Reserve, waits, commits, or compensates LIFO. AgentSelector uses Thompson Sampling.
Pluggable packages. Mount only what you need. No extension has an upward dependency on another.
HTTP + WebSocket transport. ArohaServer serves /.well-known and /aroha/v1. Middleware runs after signature verification.
Foundation that never imports anything above it. Every envelope is signed; every nonce is tracked.
Atomic multi-agent transactions with automatic LIFO compensation. Either all agents commit, or all roll back — no partial state.
saga execution flow · happy path ↑ · failure path ↓
All wire-compatible across every SDK. Same JSON structure, same Ed25519 signatures, same correlation IDs.
Every Aroha message is a signed envelope. No bare HTTP payloads. The signature covers the full body — routing headers, nonce, expiry, and payload together.
interface ArohaEnvelope { // Routing from: string; // sender DID to: string; // recipient DID type: ArohaMessageType; correlationId: string; // UUID v4 // Security nonce: string; // replay guard (5 min) expires: string; // ISO 8601 proof: string; // Ed25519 sig (base64url) // Payload body: ArohaBodyByType[ArohaMessageType]; // Optional traceparent?: string; // W3C Trace Context routingHint?: { complexity?: number }; }
Ready to build?