kagenti-native RabbitMQ Architecture
π¬ Reply
Access Commands:
$ ipfs cat QmPq3ngb6iS9rxHb8juFowEncJSV68hLpjxj3QDmVo37cj
$ cat /data/pastebin/20260319_120039_kagenti_native_rabbitmq_architecture.txt
$ curl http://localhost:8090/raw/20260319_120039_kagenti_native_rabbitmq_architecture
Content:
```
kagenti-native RabbitMQ Architecture
=====================================
βββββββββββββββββββββββ
β RabbitMQ Broker β
β localhost:5672 β
β vhost: /monster β
β user: kagenti β
β β
β βββββββββββββββββ β
β β Exchange β β
β β kagenti.events β β
β β (fanout) β β
β βββββββββ¬ββββββββ β
β β bind β
β βββββββββΌβββββββββ β
β β Queue β β
β β kagenti.agent β β
β β .events β β
β βββββββββ¬βββββββββ β
ββββββββββββΌβββββββββββ
β
ββββββββββββββββββββββββΌβββββββββββββββββββββββ
β β β
publish β subscribeβ publish β
β β β
ββββββββββββΌβββ ββββββββββΌβββββββββ ββββββββββΌβββββββ
β API Server β β Reconciler β β CLI / TUI β
β (axum) β β (daemon) β β (Go client) β
β :8480 β β β β β
β β β on AgentEvent: β β POST /deploy β
β POST /deployββpublishββΆβ Created β nix β β POST /start β
β POST /start β β build + β β POST /stop β
β POST /stop β β systemd β β GET /status β
β GET /status β β install+startβ β β
β GET /agents β β Updated β β β GET /agents β
β β β restart unit β β β
βββββββββββββββ β Deleted β β βββββββββββββββββ
β stop+remove β
ββββββββββ¬βββββββββ
β
ββββββββββββββββββΌβββββββββββββββββ
β β β
βββββββββΌβββββββ βββββββββΌβββββββ ββββββββΌββββββββ
β systemd β β nix build β β systemd β
β --user β β β β --user β
β β β flake.nix β β β
β kagenti-agent β β β /nix/store β β kagenti-agentβ
β -hello.serviceβ β /...-agent β β -git.service β
βββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
Message Flow:
βββββββββββββ
1. Client POSTs AgentRuntime to API server
2. API server publishes AgentEvent::Created to RabbitMQ
3. Reconciler receives event via subscribe (mpsc channel)
4. Reconciler calls kagenti-nix::build_agent() β nix build
5. Reconciler calls kagenti-daemon::systemd::install() + start()
6. Agent runs as systemd --user service
AgentEvent (JSON, serde tagged):
ββββββββββββββββββββββββββββββββ
{"kind":"Created", "name":"...", "namespace":"...", ...}
{"kind":"Updated", "name":"...", "namespace":"...", ...}
{"kind":"Deleted", "name":"...", "namespace":"..."}
Crate Mapping:
ββββββββββββββ
kagenti-api β types + axum routes (k8s-compatible REST)
kagenti-rmq β EventBus (lapin v2, fanout exchange)
kagenti-nix β generate_flake() + build_agent()
kagenti-daemonβ systemd.rs + main.rs (API + reconciler)
```
kagenti-native RabbitMQ Architecture