Skip to content

Architecture


System Overview

The Traylinx platform consists of two planes:

  1. Infrastructure Plane β€” Core services that enable agent communication (βœ… Production)
  2. Commercial Plane β€” Services for publishing, discovery, and monetization (🚧 Planned)

Architecture Diagram

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                          TRAYLINX AGENT NETWORK                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

                           COMMERCIAL PLANE (Planned)
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
    β”‚  β”‚ Marketplace β”‚  β”‚  Developer  β”‚  β”‚   Catalog   β”‚  β”‚  Billing  β”‚  β”‚
    β”‚  β”‚     UI      β”‚  β”‚   Portal    β”‚  β”‚   Service   β”‚  β”‚  Service  β”‚  β”‚
    β”‚  β”‚   :3000     β”‚  β”‚   :3001     β”‚  β”‚   :8003     β”‚  β”‚   :8005   β”‚  β”‚
    β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                      β”‚
                                      β–Ό
                         INFRASTRUCTURE PLANE (Production)
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚                                                                      β”‚
    β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
    β”‚   β”‚                    ROUTER AGENT :8080                      β”‚     β”‚
    β”‚   β”‚  β€’ Capability-based request routing                        β”‚     β”‚
    β”‚   β”‚  β€’ Event fan-out to 50+ subscribers                        β”‚     β”‚
    β”‚   β”‚  β€’ Retry logic with fallback                               β”‚     β”‚
    β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
    β”‚                          β”‚                 β”‚                         β”‚
    β”‚              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                 └───────────┐             β”‚
    β”‚              β–Ό                                         β–Ό             β”‚
    β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
    β”‚   β”‚  AGENT REGISTRY     β”‚               β”‚  SUBSCRIPTION SVC   β”‚     β”‚
    β”‚   β”‚      :8000          β”‚               β”‚      :8001          β”‚     β”‚
    β”‚   β”‚                     β”‚               β”‚                     β”‚     β”‚
    β”‚   β”‚  β€’ Agent discovery  β”‚               β”‚  β€’ Pub/Sub events   β”‚     β”‚
    β”‚   β”‚  β€’ Capability match β”‚               β”‚  β€’ JSONB filtering  β”‚     β”‚
    β”‚   β”‚  β€’ Performance rank β”‚               β”‚  β€’ Wildcard match   β”‚     β”‚
    β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
    β”‚                                                                      β”‚
    β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
    β”‚   β”‚                    TRAYLINX CORTEX :8000                   β”‚     β”‚
    β”‚   β”‚  β€’ Short-Term Memory (Redis)      β€’ LLM Routing (LiteLLM) β”‚     β”‚
    β”‚   β”‚  β€’ Long-Term Memory (pgvector)    β€’ PII Scrubbing         β”‚     β”‚
    β”‚   β”‚  β€’ Context Management             β€’ Background Tasks       β”‚     β”‚
    β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                      β”‚
                                      β–Ό
                           SECURITY PLANE (Production)
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚                     TRAYLINX SENTINEL :8002                         β”‚
    β”‚                                                                      β”‚
    β”‚   πŸ” OAuth 2.0 Client Credentials    πŸ”‘ Agent Secret Token          β”‚
    β”‚   πŸ“Š Activity Monitoring             πŸ“‹ Audit Logging               β”‚
    β”‚   ⏱️ Rate Limiting                   πŸ“€ Webhook Export              β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Service Inventory

Core Infrastructure Services

Service Port Repository Purpose
Sentinel 8002 traylinx_sentinel Authentication & security
Router Agent 8080 traylinx_router_agent Request routing + events
Agent Registry 8000 traylinx_agent_registry Agent discovery
Subscription 8001 traylinx_subscription_service Pub/sub events
Cortex 8000 traylinx_cortex AI brain
Switch AI β€” switch_ai AI gateway (Beta)

SDKs & Libraries

SDK Package Repository
Python traylinx-auth-client traylinx_auth_client_py
JavaScript traylinx-auth-client traylinx_auth_client_js
Ruby traylinx-a2a libs/a2a-ruby

Communication Patterns

Pattern 1: Request/Response Routing

Agent A                    Router                   Registry              Agent B
   β”‚                         β”‚                         β”‚                     β”‚
   β”‚  POST /a2a/route        β”‚                         β”‚                     β”‚
   β”‚  {capabilities: [...]}  β”‚                         β”‚                     β”‚
   │────────────────────────▢│                         β”‚                     β”‚
   β”‚                         β”‚  POST /a2a/discover     β”‚                     β”‚
   β”‚                         │────────────────────────▢│                     β”‚
   β”‚                         β”‚                         β”‚                     β”‚
   β”‚                         │◀───────────────────────│  [Agent B, Agent C] β”‚
   β”‚                         β”‚                         β”‚                     β”‚
   β”‚                         β”‚  POST /a2a/task         β”‚                     β”‚
   β”‚                         │────────────────────────────────────────────▢│
   β”‚                         β”‚                         β”‚                     β”‚
   β”‚                         │◀────────────────────────────────────────────│
   │◀───────────────────────│  {result: ...}          β”‚                     β”‚

Pattern 2: Event Publishing (Pub/Sub)

Publisher              Router              Subscription           Subscribers
    β”‚                    β”‚                    Service                  β”‚
    β”‚  POST /a2a/event   β”‚                      β”‚                      β”‚
    │───────────────────▢│                      β”‚                      β”‚
    β”‚                    β”‚  POST /query         β”‚                      β”‚
    β”‚                    │─────────────────────▢│                      β”‚
    β”‚                    │◀─────────────────────│ [Sub A, B, C]        β”‚
    β”‚                    β”‚                      β”‚                      β”‚
    β”‚                    β”‚  ──── Fan-out (parallel) ─────────────────▢│
    β”‚                    β”‚                      β”‚                      β”‚
    │◀───────────────────│  {delivered: 3}      β”‚                      β”‚

Database Architecture

Service Database Purpose
Registry PostgreSQL Agent records, capabilities, stats
Subscription PostgreSQL Subscriptions with JSONB filters
Cortex STM Redis 7 Session cache (short-term memory)
Cortex LTM PostgreSQL + pgvector Vector memory (long-term)
Sentinel PostgreSQL Activity logs, rate limits

Key Design Decision: PostgreSQL-only for core services (no Redis dependency except Cortex STM).


Quick Start

# 1. Agent Registry
cd traylinx_agent_registry
docker-compose up -d
poetry run alembic upgrade head
poetry run uvicorn app.main:app --port 8000

# 2. Subscription Service
cd traylinx_subscription_service
docker-compose up -d
poetry run alembic upgrade head
poetry run uvicorn app.main:app --port 8001

# 3. Router Agent
cd traylinx_router_agent
poetry run uvicorn app.main:app --port 8080

# 4. Health Checks
curl http://localhost:8000/health  # Registry
curl http://localhost:8001/health  # Subscriptions
curl http://localhost:8080/ready   # Router (checks deps)