mercury¶
A Rust port of mercury-composable — Accenture's event-driven, composable application platform — delivered bottom-up: foundation → user interface.
Self-contained functions (actors) addressed only by route name exchange immutable
EventEnvelope messages over an in-memory event bus. Orchestration is configuration,
not code. At the top, an active knowledge graph is the application.
The three layers¶
flowchart TB
KG["Active Knowledge Graph<br/>a graph model executes behavior —
skills on nodes, zero code for the common case"]
ES["Event Script<br/>YAML flows sequence functions per transaction —
orchestration as configuration"]
PC["platform-core<br/>functions · route names · EventEnvelope ·
in-memory event bus · Platform · PostOffice · REST automation"]
KG --> ES --> PC
-
platform-core — the event-driven foundation. Stateless functions registered by dot-separated route names, N worker instances each, RPC and fire-and-forget messaging, configuration management, structured logging, distributed tracing, and a declarative HTTP boundary where
rest.yamlis the router. -
Event Script — composable orchestration. A YAML DSL sequences functions for a transaction with a per-transaction state machine,
input/outputdata mapping, and execution types — the flow configuration is identical to the Java original, so flows port unchanged. -
Active knowledge graph — the semantic layer. A graph model executes behavior through skills embedded on nodes during traversal, with a live Playground (port 8100) where humans and AI agents co-author graphs in real time.
Why a Rust port¶
The same destination as mercury-composable (Java), re-reached in Rust: AI-assisted Semantic Application Development, on a lightweight, fast foundation (the ported event bus benchmarks at ~155K RPC ops/s at 6 µs round-trip). The port is faithful by design — the Java project remains the canonical behavior specification (map, don't mirror) — with deliberate, documented divergences where the platform differs (tokio instead of virtual threads, compile-time registration instead of classpath scanning, no Kafka service mesh, no Spring).
Where to go next¶
- Getting Started — build the workspace and run the examples.
- Architecture — how the pieces fit, from the actor model up.
- Pick your layer: event-driven functions · Event Script flows · the knowledge graph.
- AI agents start at
docs/llms.txt— the machine-readable map of the agent-optimized documentation set (engine-verified; a fresh agent can build graphs from it with zero out-of-band context). Every layer section carries its own AI agent guide. - Port Scope & Fidelity — what is ported, what deliberately is not, and how fidelity is kept honest.
- Architecture Decisions — the durable design record.
Rust port
Throughout this site, boxes like this mark the places where the Rust port deliberately differs from the Java original — no silent divergence.