ibexharness
DocsBlogReleasesRoadmap
GitHub
ibexharness

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 own memory, context assembly, and async workers. In Phase 1 only the Go services ship in production compose; everything else is documented here as the integration contract for upcoming milestones.

Phase 1 shipping surface

Runnable today: proxy (HTTP 8080) and auth (HTTP 8081, gRPC 9091). Chat routes authenticate and normalize requests, then return 501 PROVIDER_NOT_CONFIGURED. No Python services are deployed in the default dev stack yet.

Live services

LLM Proxy

Stable

Language: Go · Port: 8080

The proxy is the public HTTP edge. Every protected route runs middleware in fixed order: request ID → bearer auth (gRPC) → agent verify → rate limit → body normalization.

ResponsibilityPhase 1 status
ValidateToken via auth gRPCLive
Agent identity (X-IBEX-Agent-ID)Live
Per-org rate limits (Redis)Live
OpenAI-compatible body normalizationLive
Provider adapter forwardingReturns 501
Context / memory injectionNot wired

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, 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

The proxy has no direct database connection in Phase 1 — all identity reads go through auth. 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. Integrators should design against these contracts now; do not assume they are reachable in Phase 1.

Memory Service

Beta

Language: Python (FastAPI) · Phase: 2+

Write, deduplicate, and retrieve agent memories. Semantic search via pgvector, PII redaction, conflict detection triggers, and hot-cache writes to Redis. Target: p95 write <200ms, p95 search <100ms.

Context Assembly Engine

Beta

Language: Python (gRPC) · Phase: 2+

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

Embedding Service

Beta

Language: Python (FastAPI) · Phase: 2+

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. Redis Streams as the job broker.

API Server & Dashboard

Beta

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

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

Data model

Reference

Orgs, agents, tokens, 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
permissions64-bit permission bitmap (ADR-0009)
apierrorCanonical error codes
metrics / telemetryPrometheus and OpenTelemetry

Infrastructure dependencies

StoreUsed byPhase 1
PostgreSQL 16Auth (identity)Live
Redis 7Proxy (rate limits)Live
ClickHouseProxy (async traces)Planned
MinIOSession archivesPlanned

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%