Sovereign-Event-Bus / docs /assets /seb-architecture.svg
SNAPKITTYWEST's picture
push from SNAPKITTYWEST/Sovereign-Event-Bus
6afa130 verified
|
Raw History Blame Contribute Delete
8.95 kB
<svg xmlns="http://www.w3.org/2000/svg" width="1440" height="760" viewBox="0 0 1440 760" role="img" aria-labelledby="title desc">
<title id="title">Sovereign Event Bus architecture</title>
<desc id="desc">An architecture map showing event intake, policy evaluation, deterministic routing, evidence recording, and the repository's six implementation areas.</desc>
<defs>
<marker id="arrow" markerWidth="10" markerHeight="10" refX="8" refY="5" orient="auto" markerUnits="strokeWidth">
<path d="M 0 0 L 10 5 L 0 10 z" fill="#087E8B"/>
</marker>
<style>
.bg { fill: #F7F9FC; }
.panel { fill: #FFFFFF; stroke: #CBD5E1; stroke-width: 1.5; }
.panel-strong { fill: #FFFFFF; stroke: #17324D; stroke-width: 2; }
.panel-open { fill: #FFF9F0; stroke: #B66A15; stroke-width: 1.5; stroke-dasharray: 8 6; }
.band { fill: #EEF4F7; stroke: #B8C7D1; stroke-width: 1.5; }
.ink { fill: #101828; }
.muted { fill: #5D6B7A; }
.navy { fill: #17324D; }
.teal { fill: #087E8B; }
.amber { fill: #9A570E; }
.line { stroke: #087E8B; stroke-width: 2.5; fill: none; marker-end: url(#arrow); }
.line-muted { stroke: #9FB1BF; stroke-width: 1.5; fill: none; }
.title { font: 700 34px Inter, system-ui, -apple-system, "Segoe UI", sans-serif; }
.subtitle { font: 400 17px Inter, system-ui, -apple-system, "Segoe UI", sans-serif; }
.eyebrow { font: 700 12px Inter, system-ui, -apple-system, "Segoe UI", sans-serif; }
.node-title { font: 700 17px Inter, system-ui, -apple-system, "Segoe UI", sans-serif; }
.node-copy { font: 400 13px Inter, system-ui, -apple-system, "Segoe UI", sans-serif; }
.module-title { font: 700 15px Inter, system-ui, -apple-system, "Segoe UI", sans-serif; }
.module-copy { font: 400 12px Inter, system-ui, -apple-system, "Segoe UI", sans-serif; }
.metric { font: 700 14px Inter, system-ui, -apple-system, "Segoe UI", sans-serif; }
.metric-copy { font: 400 12px Inter, system-ui, -apple-system, "Segoe UI", sans-serif; }
</style>
</defs>
<rect class="bg" width="1440" height="760"/>
<rect x="0" y="0" width="16" height="760" fill="#17324D"/>
<g transform="translate(64 42)">
<rect x="0" y="0" width="48" height="48" rx="4" fill="#17324D"/>
<path d="M 12 15 H 36 M 12 24 H 30 M 12 33 H 36" stroke="#FFFFFF" stroke-width="3" stroke-linecap="square"/>
<circle cx="36" cy="24" r="5" fill="#2AB0A8"/>
<text x="66" y="29" class="title ink">Sovereign Event Bus</text>
<text x="66" y="54" class="subtitle muted">Evidence-bearing coordination for deterministic agent and system workflows</text>
<g transform="translate(1110 0)">
<rect x="0" y="0" width="190" height="32" rx="4" fill="#E8EEF3" stroke="#B8C7D1"/>
<text x="95" y="21" text-anchor="middle" class="eyebrow navy">REFERENCE IMPLEMENTATION</text>
</g>
</g>
<line x1="64" y1="122" x2="1376" y2="122" stroke="#CBD5E1" stroke-width="1"/>
<g transform="translate(64 156)">
<text x="0" y="0" class="eyebrow teal">CONTROL PLANE</text>
<g transform="translate(0 24)">
<rect class="panel-strong" x="0" y="0" width="245" height="112" rx="5"/>
<rect x="0" y="0" width="8" height="112" fill="#17324D"/>
<text x="28" y="34" class="node-title ink">Event envelope</text>
<text x="28" y="59" class="node-copy muted">Intent, authority, payload,</text>
<text x="28" y="79" class="node-copy muted">evidence, offset, and prior hash</text>
</g>
<path class="line" d="M 253 80 H 305"/>
<g transform="translate(313 24)">
<rect class="panel" x="0" y="0" width="245" height="112" rx="5"/>
<rect x="0" y="0" width="8" height="112" fill="#087E8B"/>
<text x="28" y="34" class="node-title ink">Policy gate</text>
<text x="28" y="59" class="node-copy muted">Authorize, deny, or request</text>
<text x="28" y="79" class="node-copy muted">additional evidence before work</text>
</g>
<path class="line" d="M 566 80 H 618"/>
<g transform="translate(626 24)">
<rect class="panel" x="0" y="0" width="245" height="112" rx="5"/>
<rect x="0" y="0" width="8" height="112" fill="#087E8B"/>
<text x="28" y="34" class="node-title ink">Deterministic router</text>
<text x="28" y="59" class="node-copy muted">Select partition and adapter</text>
<text x="28" y="79" class="node-copy muted">from stable event attributes</text>
</g>
<path class="line" d="M 879 80 H 931"/>
<g transform="translate(939 24)">
<rect class="panel-open" x="0" y="0" width="373" height="112" rx="5"/>
<rect x="0" y="0" width="8" height="112" fill="#B66A15"/>
<text x="28" y="34" class="node-title ink">Evidence and WORM boundary</text>
<text x="28" y="59" class="node-copy muted">Seal, persist, rotate, recover, and</text>
<text x="28" y="79" class="node-copy muted">verify. Durable backend remains a gate.</text>
</g>
</g>
<g transform="translate(64 326)">
<rect class="band" x="0" y="0" width="1312" height="284" rx="5"/>
<text x="24" y="31" class="eyebrow navy">IMPLEMENTATION SUBSTRATE</text>
<text x="1288" y="31" text-anchor="end" class="node-copy muted">Solid: source present Dashed: production gate open</text>
<g transform="translate(24 52)">
<rect class="panel-open" x="0" y="0" width="398" height="88" rx="4"/>
<text x="20" y="28" class="module-title ink">Kernel boundary</text>
<text x="20" y="50" class="module-copy muted">Ada contracts and Erlang C NIF surface</text>
<text x="20" y="70" class="module-copy amber">Key registry and durable WAL integration pending</text>
</g>
<g transform="translate(457 52)">
<rect class="panel" x="0" y="0" width="398" height="88" rx="4"/>
<text x="20" y="28" class="module-title ink">Runtime coordination</text>
<text x="20" y="50" class="module-copy muted">Erlang/OTP supervision, agent FSM, partitions</text>
<text x="20" y="70" class="module-copy muted">Datalog bridge and kernel facade</text>
</g>
<g transform="translate(890 52)">
<rect class="panel" x="0" y="0" width="398" height="88" rx="4"/>
<text x="20" y="28" class="module-title ink">Enterprise adapters</text>
<text x="20" y="50" class="module-copy muted">IBM i RPGLE, PL/I declarations, copybook</text>
<text x="20" y="70" class="module-copy muted">Explicit host build and conformance boundary</text>
</g>
<g transform="translate(24 160)">
<rect class="panel-open" x="0" y="0" width="398" height="88" rx="4"/>
<text x="20" y="28" class="module-title ink">Human review gate</text>
<text x="20" y="50" class="module-copy muted">Rust queue, audit log, approval certificate model</text>
<text x="20" y="70" class="module-copy amber">Authentication, signing, and daemon path pending</text>
</g>
<g transform="translate(457 160)">
<rect class="panel" x="0" y="0" width="398" height="88" rx="4"/>
<text x="20" y="28" class="module-title ink">Reasoning protocol</text>
<text x="20" y="50" class="module-copy muted">Rust traces, A2A events, streaming, composition</text>
<text x="20" y="70" class="module-copy muted">Library unit tests cover the in-memory model</text>
</g>
<g transform="translate(890 160)">
<rect class="panel-open" x="0" y="0" width="398" height="88" rx="4"/>
<text x="20" y="28" class="module-title ink">Universe and proof layer</text>
<text x="20" y="50" class="module-copy muted">Artifact manifests, CVM gate, Lean models</text>
<text x="20" y="70" class="module-copy amber">Real typecheck and zero-sorry proof gate pending</text>
</g>
<path class="line-muted" d="M 223 140 V 160"/>
<path class="line-muted" d="M 656 140 V 160"/>
<path class="line-muted" d="M 1089 140 V 160"/>
</g>
<g transform="translate(64 638)">
<rect class="panel" x="0" y="0" width="1312" height="78" rx="5"/>
<g transform="translate(24 18)">
<text x="0" y="15" class="metric navy">33 library tests</text>
<text x="0" y="36" class="metric-copy muted">Reasoning and Universe unit suites</text>
</g>
<line x1="348" y1="14" x2="348" y2="64" stroke="#D5DEE5"/>
<g transform="translate(378 18)">
<text x="0" y="15" class="metric amber">Open production gates</text>
<text x="0" y="36" class="metric-copy muted">Crypto, persistence, proof closure, CI, recovery</text>
</g>
<line x1="842" y1="14" x2="842" y2="64" stroke="#D5DEE5"/>
<g transform="translate(872 18)">
<text x="0" y="15" class="metric navy">Apache-2.0</text>
<text x="0" y="36" class="metric-copy muted">Source and documentation in this repository</text>
</g>
</g>
</svg>