Portal Community

Architecture Overview

// Typical enterprise multi-area deployment:
Octopus API Cluster (3 nodes)
├── Shared Infrastructure
│   ├── SQL Server (Octopus_* tables — all tenants, all areas)
│   ├── Qdrant (separate collection per agent → per area effectively)
│   └── Redis (session cache, distributed token counting)
└── Logic Layer
    ├── Area: HR       → 3 agents × 5 knowledge docs × 8 tools
    ├── Area: Finance  → 2 agents × 4 knowledge docs × 6 tools
    ├── Area: IT       → 4 agents × 10 knowledge docs × 12 tools
    ├── Area: Legal    → 1 agent  × 8 knowledge docs × 3 tools
    └── Area: Public   → 1 agent  × 3 knowledge docs × 0 tools (public chatbot)

Performance Considerations at Scale

ConcernImpactMitigation
Many vector collections in QdrantMemory overhead per collectionQdrant's collection memory is lazy-loaded; 50+ collections are fine on a 16GB instance
SQL connection poolConcurrent agents share the same poolSet appropriate pool size; read replicas for read-heavy areas
LLM API rate limitsHigh concurrent usage hits provider limitsConfigure per-area rate limiting; use multiple API keys if needed
Embedding API callsEvery turn triggers an embedding callCache query embeddings for identical messages within a short window

Area-Level Monitoring

// Per-area metrics exposed via /metrics (Prometheus format):
octopus_turns_total{area="HR", agent="hr_assistant"} 1247
octopus_turns_total{area="Finance", agent="expense_advisor"} 328

octopus_tool_calls_total{area="HR", tool="get_leave_balance"} 892
octopus_semantic_retrievals{area="HR", agent="hr_assistant", score_bucket="0.75-0.85"} 456

octopus_token_usage{area="HR", type="input"}  1_234_567
octopus_token_usage{area="HR", type="output"}   312_890

// Area-specific dashboards recommended in Grafana for area-by-area monitoring

Multi-Tenant vs. Multi-Area

DimensionMulti-TenantMulti-Area
Separation boundaryCompany / organisationDepartment / business domain
Data isolationHard isolation — different SQL rows by TenantIdLogical isolation — different agents within same tenant
Admin scopeTenant admin cannot see other tenantsArea admin cannot see other areas (unless they have OctopusTenantAdmin)
Knowledge sharingNot possible across tenantsPossible via shared agent collection
Start Simple — Add Areas as Needed

Begin with a single area and add more areas as your deployment matures and distinct domain requirements emerge. Migrating agents between areas is straightforward — it is a configuration change, not a data migration.