Service Topology
┌─────────────────────────────┐
│ First-party clients │
│ web | desktop | codex-tui │
└──────────────┬──────────────┘
│
Fabric RPC / WS / REST app APIs
│
┌──────────────▼──────────────┐
│ Diminuendo │
│ gateway, auth, sessions, │
│ projection, integrations │
└───────┬─────────┬───────────┘
│ │
Fabric RPC │ │ Fabric resource/sync
│ │
┌──────────────────────▼──┐ ┌──▼─────────────────────┐
│ Podium │ │ Unison │
│ runtime gateway + coord │ │ config, resources, │
│ agents, deployment │ │ Valkey, Explorer │
└───────────┬──────────────┘ └────────────────────────┘
│
│ agent runtime calls
│
┌───────────▼──────────────┐
│ Ensemble │
│ inference Fabric RPC │
│ model list + generation │
└───────────┬──────────────┘
│
│ normal file I/O / optional sync
│
┌───────────▼──────────────┐
│ Chronicle │
│ versioned workspace, CAS, │
│ sync, optional FUSE mount │
└──────────────────────────┘
Edge protocol sidecars: ACP | MCP | A2A | AG-UI
A Turn Through The System
1. A client connects to Diminuendo and authenticates with the gateway. 2. Diminuendo creates or resumes a Fabric session and projects the session state to the client. 3. Runtime work is delegated to Podium through its gateway and coordinator. 4. Podium starts or locates the target agent process and streams runtime events. 5. The agent calls Ensemble through the native staging inference endpoint unless a deployment explicitly uses local Ensemble. 6. The agent reads and writes workspace files through the normal filesystem. Chronicle may provide versioning, sync, and content-addressed storage underneath, normally via the shared Podium runtime. 7. Diminuendo persists and broadcasts the resulting session updates back to connected clients.
Public Dev Host Map
| Host | Backing service |
|---|---|
https://fabric.dev.aws.igent.ai | Static web bundle plus proxy to Diminuendo on :8001 |
https://ensemble.fabric.dev.aws.igent.ai | Retained compatibility route; managed dev prefers the company-wide staging Ensemble endpoint from SSM |
https://podium.fabric.dev.aws.igent.ai | Retained compatibility route; managed dev prefers the company-wide staging Podium endpoint from SSM |
https://unison.fabric.dev.aws.igent.ai | Unison service on :8005 and Explorer on :5175 |
https://viz.fabric.dev.aws.igent.ai | Static visualizer plus real-time tap on :12099 |
https://otel.fabric.dev.aws.igent.ai | OTEL viewer on :8008 |
https://docs.fabric.dev.aws.igent.ai | Static documentation bundle |
Local PM2 Stack
The root Fabric workspace owns the operational stack. The checked-in PM2 ecosystem starts the owned local services and can optionally start local copies of staging-backed dependencies:
| Service | Local endpoint | Purpose |
|---|---|---|
diminuendo | 127.0.0.1:8001 | Gateway and app API |
podium-gw | 127.0.0.1:8002 | Optional local runtime gateway when FABRIC_PODIUM_MODE=local |
podium-coord | 127.0.0.1:8003 | Optional local runtime coordinator when FABRIC_PODIUM_MODE=local |
ensemble | 127.0.0.1:8004 | Optional local inference RPC when FABRIC_ENSEMBLE_MODE=local |
unison | 127.0.0.1:8005 | Config/resource service |
ensemble-rest | 127.0.0.1:8007 | Legacy REST/catalog server when ensemble/bin/ensemble.old exists |
otel-dev | 127.0.0.1:8008 | Local OTEL viewer and OTLP endpoints |
visualizer-tap | 127.0.0.1:12099 | Real-time visualizer WebSocket tap |
web | 127.0.0.1:8000 | Optional Vite web dev server |
visualizer | 127.0.0.1:5173 | Optional visualizer dev server |
Chronicle is optional in the root stack unless a task explicitly needs the workspace authority.
External Dependencies
| Dependency | Used by | Purpose |
|---|---|---|
| SQLite | Diminuendo and compatibility paths in optional local dependencies | Embedded local state |
| Valkey | Unison and selected services | Durable config persistence, coordination, pub/sub |
| Auth0 | Diminuendo | Public authentication and JWT verification |
| S3-compatible storage | Podium, Chronicle, persistence paths | Deployment bundles, content storage, durable artifacts |
| LLM providers | Ensemble | Provider-backed inference |
The live dev stack uses host Valkey on Linux. Docker Postgres and Docker Valkey should remain off there.