Vapora/docs/architecture
Jesús Pérez 75e5ebd9a2
Some checks failed
Documentation Lint & Validation / Markdown Linting (push) Has been cancelled
Documentation Lint & Validation / Validate mdBook Configuration (push) Has been cancelled
Documentation Lint & Validation / Content & Structure Validation (push) Has been cancelled
mdBook Build & Deploy / Build mdBook (push) Has been cancelled
Nickel Type Check / Nickel Type Checking (push) Has been cancelled
Rust CI / Security Audit (push) Has been cancelled
Rust CI / Check + Test + Lint (nightly) (push) Has been cancelled
Rust CI / Check + Test + Lint (stable) (push) Has been cancelled
Documentation Lint & Validation / Lint & Validation Summary (push) Has been cancelled
mdBook Build & Deploy / Documentation Quality Check (push) Has been cancelled
mdBook Build & Deploy / Deploy to GitHub Pages (push) Has been cancelled
mdBook Build & Deploy / Notification (push) Has been cancelled
chore: ontology sync + 4 NCL ADRs + landing page update
on+re:
  - core.ncl: 5 new Practice nodes (notification-channels,
    vapora-capabilities, agent-hot-reload-stable-identity,
    merkle-audit-trail, notification-channels) + 5 new edges;
    knowledge-graph-execution-history updated with HNSW+BM25+RRF
  - state.ncl: production-readiness blocker/catalyst updated (hot-reload
    complete, BudgetManager/LLMRouter still require restart);
    ontoref-integration catalyst updated (vapora-ontology/reflection
    crates, api-catalog.json, nickel contracts)

  ADRs (NCL):
  - adr-013: KG hybrid search — HNSW+BM25+RRF, rejected in-process scan
  - adr-014: capability packages — AgentDefinition→vapora-shared,
    DashMap shard-before-await constraint
  - adr-015: Merkle audit trail — SHA-256 hash chain, rejected HMAC
  - adr-016: agent hot-reload — stable_id=role, learning_profiles survive
    drain, BudgetManager excluded from reload scope

  landing page:
  - 2 new feature boxes: VCS-Agnostic Worktree (jj/git), Ontology Protocol
  - KG box: 20→28 tests, HNSW+BM25+RRF description
  - Agents box: 71→82 tests, hot-reload + stable_id
  - tech stack: Rust 21→23 crates, added jj, Radicle, ontoref badges
  - status badge: 620→691 tests
2026-04-07 21:06:48 +01:00
..
agent-registry-coordination.html chore: extend doc: adr, tutorials, operations, etc 2026-01-12 03:32:47 +00:00
agent-registry-coordination.md chore: ontology sync + 4 NCL ADRs + landing page update 2026-04-07 21:06:48 +01:00
index.html chore: extend doc: adr, tutorials, operations, etc 2026-01-12 03:32:47 +00:00
llm-provider-implementation.md feat: add Leptos UI library and modularize MCP server 2026-02-14 20:10:55 +00:00
llm-provider-patterns.md feat: add Leptos UI library and modularize MCP server 2026-02-14 20:10:55 +00:00
multi-agent-workflows.html chore: extend doc: adr, tutorials, operations, etc 2026-01-12 03:32:47 +00:00
multi-agent-workflows.md chore: ontology sync + 4 NCL ADRs + landing page update 2026-04-07 21:06:48 +01:00
multi-ia-router.html chore: extend doc: adr, tutorials, operations, etc 2026-01-12 03:32:47 +00:00
multi-ia-router.md chore: ontology sync + 4 NCL ADRs + landing page update 2026-04-07 21:06:48 +01:00
README.md feat: add Leptos UI library and modularize MCP server 2026-02-14 20:10:55 +00:00
roles-permissions-profiles.html chore: extend doc: adr, tutorials, operations, etc 2026-01-12 03:32:47 +00:00
roles-permissions-profiles.md chore: ontology sync + 4 NCL ADRs + landing page update 2026-04-07 21:06:48 +01:00
schema-validation-pipeline.md chore: add ValidationPipeline 2026-01-14 21:12:49 +00:00
task-agent-doc-manager.html chore: docs guides 2026-02-17 23:15:12 +00:00
task-agent-doc-manager.md chore: docs guides 2026-02-17 23:15:12 +00:00
vapora-architecture.html chore: extend doc: adr, tutorials, operations, etc 2026-01-12 03:32:47 +00:00
vapora-architecture.md feat: Phase 5.3 - Multi-Agent Learning Infrastructure 2026-01-11 13:03:53 +00:00

VAPORA Architecture

Comprehensive documentation of VAPORA's system architecture, design patterns, and implementation details.

Architecture Layers

1. Protocol Layer

A2A (Agent-to-Agent) Protocol

  • Standard protocol for agent-to-agent communication
  • JSON-RPC 2.0 specification compliance
  • Agent discovery via Agent Card
  • Task dispatch and lifecycle tracking
  • See: ADR-0001: A2A Protocol Implementation

MCP (Model Context Protocol)

  • Real MCP transport with Stdio and SSE support
  • 6 integrated tools for task/agent management
  • Backend client integration
  • Tool registry with JSON Schema validation

2. Server Layer

vapora-a2a (A2A Server)

  • Axum-based HTTP server
  • Endpoints: agent discovery, task dispatch, status query, health, metrics
  • JSON-RPC 2.0 request/response handling
  • SurrealDB persistent storage (production-ready)
  • NATS async coordination for task lifecycle events
  • Prometheus metrics (/metrics endpoint)
  • Integration: AgentCoordinator, TaskManager, CoordinatorBridge
  • Tasks survive server restarts (persistent)
  • Background NATS listeners for TaskCompleted/TaskFailed

vapora-a2a-client (A2A Client)

  • HTTP client library for A2A protocol
  • Methods for discovery, dispatch, query
  • Exponential backoff retry with jitter (100ms → 5s)
  • Smart retry logic (5xx/network YES, 4xx NO)
  • Timeout and error handling
  • Full serialization support

3. Infrastructure Layer

Kubernetes Deployment

  • StatefulSet-based deployment via Kustomize
  • Environment-specific overlays (dev, prod)
  • RBAC, resource quotas, anti-affinity
  • ConfigMap-based A2A integration
  • See: ADR-0002: Kubernetes Deployment Strategy

4. Integration Layer

AgentCoordinator Integration

  • CoordinatorBridge maps A2A tasks to internal agents
  • Task state management
  • Background completion tracking

Backend Integration

  • SurrealDB for persistent storage
  • Multi-tenant scope isolation
  • REST API endpoints

Key Components

A2A Protocol Types

Type Purpose Location
A2aTask Task request protocol.rs
A2aMessage Message with text/file parts protocol.rs
A2aTaskStatus Task state and result protocol.rs
A2aTaskResult Execution result with artifacts protocol.rs
AgentCard Agent capability advertisement agent_card.rs

Error Handling

Two-layer strategy:

Crate Dependencies

vapora-a2a (A2A Server)
├── vapora-agents
├── vapora-shared
├── axum
├── tokio
└── serde/serde_json

vapora-a2a-client (A2A Client)
├── vapora-a2a
├── vapora-shared
├── reqwest
├── tokio
└── serde/serde_json

vapora-mcp-server (MCP Transport)
├── vapora-agents
├── vapora-shared
├── axum
├── reqwest
└── serde/serde_json

LLM Routing & Cost Management

NEW: Two comprehensive guides for working with LLM providers (Claude, OpenAI, Gemini, Ollama)

For Developers

  • LLM Provider Patterns — Four implementation approaches:

    1. Mocks — Zero-cost development without API subscriptions
    2. SDK Direct — Full integration with official APIs
    3. Add Provider — Extending VAPORA with custom providers
    4. End-to-End — Complete request-to-response flow
  • LLM Provider Implementation Guide — How VAPORA implements it today:

    • LLMClient trait abstraction (Claude, OpenAI, Gemini, Ollama)
    • Hybrid routing engine (rules + dynamic + manual override)
    • Cost tracking & token accounting
    • Three-tier budget enforcement
    • Automatic fallback chains
    • Production code examples

Key Insights

Scenario Pattern Cost
Local development Mocks $0
CI/integration tests SDK + mocks $0
Staging/production SDK real $varies
Privacy-critical Ollama local $0
Cost-optimized Gemini + Ollama fallback $0.005/1k

Start here: llm-provider-patterns.md for patterns without subscriptions.