System CorePlatform APIs
Vitruvyan Docs
๐ Horizon Engine API (DSE)
Last Updated: March 23, 2026 17:00 UTC
๐ Location
- Service:
services/api_horizon_engine/ - Pure core:
vitruvyan_core/core/governance/horizon_engine/ - Module doc: Horizon Engine
๐ช Base URL / Port
- Config default:
SERVICE_PORT=8014(services/api_horizon_engine/config.py) - Docker external port: 9014 (see
infrastructure/docker/docker-compose.yml)
๐งญ Endpoints (implemented)
Defined in services/api_horizon_engine/api/routes.py:
| Method | Path | Description |
|---|---|---|
GET | /health | liveness + bus connectivity status |
POST | /optimise | run a Pareto optimisation + doctrine ranking |
GET | /optimise/{run_id} | retrieve a past run (501 โ not yet implemented) |
๐งพ Request/Response models
See services/api_horizon_engine/models/schemas.py.
POST /optimise
Request (OptimisationRunRequest):
Response (OptimisationRunResponse):
GET /health
Response (HealthCheckResponse):
โ๏ธ Env vars (service-level)
Loaded in services/api_horizon_engine/config.py:
| Variable | Default | Description |
|---|---|---|
SERVICE_PORT | 8014 | HTTP listen port |
LOG_LEVEL | INFO | logging verbosity |
DEFAULT_DOCTRINE | balanced | doctrine preset (balanced/defensive/aggressive/quality_first) |
DEFAULT_SEED | 42 | RNG seed for reproducibility |
VERITAS_ENGINE_URL | http://veritas_engine:8013 | upstream Veritas URL (optional) |
REDIS_URL | redis://redis:6379 | StreamBus connection |
POSTGRES_HOST | postgres | audit log DB host |
POSTGRES_DB | vitruvyan | audit log DB name |
POSTGRES_USER | vitruvyan | audit log DB user |
POSTGRES_PASSWORD | (secret) | audit log DB password |
๐ Redis Streams Listener
services/api_horizon_engine/streams_listener.py runs as a sidecar container.
- Channel:
horizon.optimisation.requested - Consumer group:
horizon_engine - Trigger: deserializes payload โ calls
HorizonBusAdapter.run_optimisation() - ACK: acknowledges event after successful processing
๐๏ธ Audit Log (optional)
services/api_horizon_engine/adapters/persistence.py writes to:
Insert is ON CONFLICT DO NOTHING โ idempotent.
Postgres wiring is optional: if PostgresAgent is unavailable the audit log silently skips.