Deployment¶
Docker Compose (Recommended)¶
The simplest way to run PulseRoute in production.
Core Stack¶
Starts the API, dashboard, and backing store:
| Service | Port | Description |
|---|---|---|
| api | 8080 | PulseRoute engine |
| dashboard | 8000 | Monitoring UI |
With Monitoring¶
Adds Prometheus and Grafana:
| Service | Port | Credentials |
|---|---|---|
| prometheus | 9090 | (none) |
| grafana | 3001 | admin / pulseroute |
Environment Variables¶
API Configuration¶
| Variable | Default | Description |
|---|---|---|
PULSEROUTE_TIER |
3 |
Engine tier: 1 (Sentinel), 2 (Foresight), 3 (Autopilot) |
PULSEROUTE_API_KEYS |
(unset) | API keys with optional tenant mapping. Unset = no auth (dev mode). |
PULSEROUTE_CORS_ORIGINS |
(unset) | Comma-separated allowed CORS origins |
Production Recommendations¶
# .env file
PULSEROUTE_TIER=3
PULSEROUTE_API_KEYS=key-abc-123:tenant_acme,key-def-456:tenant_beta
PULSEROUTE_CORS_ORIGINS=https://your-dashboard.com
Multi-Tenancy¶
PulseRoute supports multi-tenant deployments where each tenant has fully isolated routing rules, health metrics, predictions, and webhooks.
Configuration¶
Tenants are defined through the PULSEROUTE_API_KEYS environment variable using key:tenant_id pairs:
# Multi-tenant: each key maps to a tenant
PULSEROUTE_API_KEYS=key-abc:acme_corp,key-def:acme_corp,key-xyz:beta_inc
# Legacy format (backward compatible): all keys map to "default" tenant
PULSEROUTE_API_KEYS=key-abc,key-def
Multiple API keys can map to the same tenant (e.g., production and staging keys for one customer).
Tenant Isolation¶
| Resource | Isolated? |
|---|---|
| Routing rules | Yes |
| Transaction metrics | Yes |
| Health evaluations | Yes |
| Failure predictions (Tier 2) | Yes |
| Adaptive routing (Tier 3) | Yes |
| Webhooks | Yes |
Tenant Management API¶
# List active tenants
curl -H "X-API-Key: key-abc" http://localhost:8080/v1/tenants
# Get tenant details
curl -H "X-API-Key: key-abc" http://localhost:8080/v1/tenants/acme_corp
Health Checks¶
The API exposes health check endpoints:
# Basic liveness
curl http://localhost:8080/
# {"service": "pulseroute", "version": "0.1.0"}
# Engine health (detailed)
curl http://localhost:8080/v1/health
Performance¶
PulseRoute is designed for low-latency, high-throughput routing decisions:
| Metric | Value |
|---|---|
| Routing decisions | 300+ req/s |
| Outcome reports | 120+ req/s |
| Route latency (p50) | 5ms |
| Route latency (p99) | 30ms |