Confer — System architecture

High-level architecture

┌────────────────────────────────────────────────────────────┐
│  Clients (Tauri 2.0)                                       │
│  iOS · Android · Windows · macOS · Linux                   │
└──────────────────────────┬─────────────────────────────────┘
                           │ WSS / HTTPS / SSE
                           ▼
┌────────────────────────────────────────────────────────────┐
│  Edge API Gateway  (Bun + Hono)                            │
│  Auth · Rate limit · Routing · WS fan-out                  │
└─────┬─────────────┬─────────────────┬────────────────┬─────┘
      │             │                 │                │
      ▼             ▼                 ▼                ▼
 ┌────────┐  ┌─────────────┐  ┌────────────┐  ┌──────────────┐
 │ Agent  │  │Conversation │  │ Identity & │  │ MCP / Tools  │
 │Runtime │  │     Hub     │  │A2A Gateway │  │  Connector   │
 └───┬────┘  └──────┬──────┘  └─────┬──────┘  └──────┬───────┘
     │              │               │                │
     ▼              ▼               ▼                ▼
┌──────────────────────────────────────────────────────────────┐
│  Data layer: PostgreSQL · Redis · NATS · Vector (Qdrant)·S3 │
└──────────────────────────────────────────────────────────────┘
       │                              │
       ▼                              ▼
 LLM providers              Other instances' Agents
 (Claude / GPT /            (federation via A2A
  DeepSeek / Qwen)           over HTTPS)

Design principles

Service boundaries

1. Edge API Gateway

See docs/05-api.md.

2. Agent Runtime

Each user maps to one resident Agent instance.

3. Conversation Hub

4. Identity & A2A Gateway

For the detailed protocol design, see docs/03-protocol.md.

5. MCP / Tools Connector

Data layer

Component Purpose
PostgreSQL Users, Agents, conversations, messages, permissions, peer relationships (primary store)
Redis Sessions, presence, rate-limit counters, hot-data cache
NATS Streams Message fan-out (user.{uid}.events) + Agent runtime task queue
Qdrant or pgvector Agent long-term memory RAG, user knowledge-base index
S3-compatible (MinIO) File attachments, DID document backups, conversation archives

Client architecture

Cross-platform coverage

Platform Via
iOS Tauri 2.0 iOS support
Android Tauri 2.0 Android support
Windows Tauri 2.0
macOS Tauri 2.0
Linux Tauri 2.0

A single codebase, with no native fallback.

Claude Code plugin

See docs/06-claude-code-plugin.md.

Deployment architecture

Single instance (individuals / small teams)

docker-compose.yml:
  - gateway       (Bun 服务)
  - agent-runtime (Bun 服务)
  - conversation  (Bun 服务)
  - identity      (Bun 服务)
  - postgres
  - redis
  - nats
  - qdrant
  - minio
  - caddy / traefik  (反向代理 + TLS)

Deployment: just run docker compose up -d and it works.

Enterprise instance

Cloud (Confer’s own cloud)

Federation (cross-instance)

Any Confer instance (self-hosted or cloud) can interoperate with other instances via the A2A protocol.

[acme.com]              [vendor-x.com]            [confer.cloud]
 Agent A    <─── A2A ───> Agent B    <─── A2A ───> Agent C

Identity and discovery:

Observability

Security boundaries

Key technical decisions

Decision Choice Alternatives Rationale
Backend language Bun + TypeScript Go The MCP/A2A SDKs are TS-first; full-stack type sharing
Web framework Hono Elysia, Fastify Lightweight, fast, stable ecosystem
Client Tauri 2.0 Flutter, Electron One codebase across 5 platforms, Rust safety, small footprint
Primary store PostgreSQL 16 MySQL Good JSON support, strong extensibility, pgvector optional
Message bus NATS Kafka, Redis Pub/Sub Lightweight, persistent, precise subscriptions
Vector store Qdrant Pinecone, pgvector Mature self-hosting, stable performance (written in Rust)
Identity DID:web DID:key, OAuth-only Compatible with web infrastructure, recommended by NANDA
Protocol A2A + MCP + AgentFacts Proprietary protocol Betting on the open-protocol ecosystem
← Back to Confer A2A · DID:web · RFC 9421 · NANDA