IBEX Harness
DocsBenchmarksBlogChangelogRoadmap
GitHub
IBEX Harness

Documentation

OverviewServicesData modelRequest lifecycle
Architecture›Services
Architecture

Services

Live and planned IBEX Harness services — proxy, auth, memory, context, and workers.

IBEX Harness follows microservice boundaries with a clear split: Go services own the latency-critical proxy and auth paths; Python services will own memory, context assembly, and async workers. Only the Go services ship today.

Shipping surface

Runnable today: proxy (HTTP 8080) and auth (HTTP 8081, gRPC 9091). Chat routes authenticate, rate-limit, inject directives, and forward via mock or live providers. No Python services are deployed in the default dev stack.

Live services

LLM Proxy

Stable

Language: Go · Port: 8080

The proxy is the public HTTP edge. Protected chat routes run middleware in fixed order: body limit → Content-Type → auth → agent verify → rate limit → directive resolve → chat parse → provider routing → handler.

ResponsibilityStatus
ValidateToken via auth gRPC (+ optional auth cache)Live
Agent identity (X-IBEX-Agent-ID)Live
Per-org rate limits (Redis)Live
OpenAI-compatible body normalizationLive
Mock / live provider forwardingLive
Directives + sessions + idempotencyLive (when Postgres/Redis configured)
Async ClickHouse tracesLive when CLICKHOUSE_DSN set
Memory injectionNot wired (Phase 3)

See Proxy overview for middleware detail and probe commands.

Auth Service

Stable

Language: Go · HTTP: 8081 · gRPC: 9091

Central identity store. Issues PATs (Argon2id-hashed), validates tokens and agents for the proxy, publishes revocations to Redis, and enforces Postgres RLS on ibex_core tables.

gRPC RPCPurpose
ValidateTokenResolve org_id, permissions, token_id from bearer PAT
ValidateAgentConfirm agent belongs to org
CreateToken / RevokeToken / ListTokensPAT lifecycle

See Auth overview and ADR-0011.

Live

Proxy

Guide

Middleware chain, rate limits, and routing.

Learn more →
Live

Auth

Guide

PAT issuance, gRPC validation, and RLS.

Learn more →

Proxy auth client

Reference

ADR for gRPC client and fail-closed behavior.

Learn more →

Planned services

These services are specified in engineering docs and will appear in compose as their milestones land. Do not assume they are reachable today.

Memory Service

Beta

Language: Python (FastAPI) · Phase: 3

Write, deduplicate, and retrieve agent memories. Semantic search via pgvector, PII redaction, conflict detection triggers, and hot-cache writes to Redis.

Context Assembly Engine

Beta

Language: Python (gRPC) · Phase: 3

Assembles directive + memories + conversation history within the model token budget. Parallel retrieval with a bounded deadline; greedy knapsack packing by composite relevance score.

Embedding Service

Beta

Language: Python (FastAPI) · Phase: 3

Batch embedding via all-MiniLM-L6-v2 (384 dimensions). Buffers requests (64 items or 50ms) for GPU throughput.

Background Workers

Beta

Language: Python (Celery) · Phase: 3

Async pipelines: memory extraction after each inference, conflict resolution, behavioral fingerprinting, drift detection, notifications, and garbage collection.

API Server & Dashboard

Beta

Languages: Python (FastAPI) + Next.js · Phase: 3–4

Management REST API and operator dashboard for agents, directives, memories, and drift alerts.

Data model

Reference

Orgs, agents, tokens, sessions, and future memory tables.

Learn more →

Request lifecycle

Guide

End-to-end proxy flow with sequence diagram.

Learn more →

Glossary

Reference

Service names, acronyms, and domain terms.

Learn more →

Shared Go packages

Cross-cutting infrastructure lives in packages/* and is imported by proxy and auth:

PackageRole
loggerStructured JSON logging (mandatory in services)
reqidUUID v7 request ID propagation
ratelimitRedis sliding-window limiter interface
authcache / revocationBloom+LRU cache and revoke pub/sub
directive / injection / session / idempotencyLate Phase 2 critical-path features
provider / provider/openai / provider/mockllmProvider registry and adapters
clickhouseAsync llm_traces writer
permissions64-bit permission bitmap (ADR-0009)
apierrorCanonical error codes
metrics / telemetryPrometheus and OpenTelemetry

Infrastructure dependencies

StoreUsed byStatus
PostgreSQL 16Auth (identity); proxy (directives/sessions)Live
Redis 7Proxy (rate limits, cache, idempotency); auth (revoke publish)Live
ClickHouseProxy (async traces)Live when DSN set
MinIOSession archivesPlanned (Phase 3+)

Was this page helpful?

Edit on GitHub

Last updated on

PreviousOverviewNextData model

On this page

  • Live services
  • LLM Proxy
  • Auth Service
  • Planned services
  • Memory Service
  • Context Assembly Engine
  • Embedding Service
  • Background Workers
  • API Server & Dashboard
  • Shared Go packages
  • Infrastructure dependencies
0%