Veltrix is a distributed benchmarking platform for high-frequency trading engines. It securely hosts untrusted submissions, drives deterministic load with a C++ bot fleet, aggregates telemetry with event-time correctness checks, and streams a live leaderboard.
This repository is organized as a monorepo. The production services live under veltrix/.
- Local setup: SETUP.md
- Running locally: RUNNING.md
- Troubleshooting: TROUBLESHOOTING.md
- System architecture: ARCHITECTURE.md
- Onboarding guide: docs/ONBOARDING.md
- Service dependency map: docs/SERVICE_DEPENDENCIES.md
- Technical debt report: docs/TECH_DEBT.md
Veltrix provides a safe, reproducible environment to benchmark contestant orderbooks/matching engines under heavy load while enforcing correctness (price-time priority) and fairness (resource isolation). The platform is designed for local docker-compose development and for production-scale orchestration in the future.
flowchart LR
A[Submission Service] --> B[MinIO Object Storage]
A --> C[(Postgres)]
A --> D[Redis Queue]
D --> E[Sandbox Manager]
E --> F[Contestant Sandbox]
E --> G[Bot Fleet]
G --> H[gRPC Telemetry Ingester]
H --> I[Redpanda Topics]
I --> J[Artifact Checker]
J --> C
J --> K[Redis Leaderboard]
K --> L[Leaderboard Service]
- Go (submission-service, sandbox-manager)
- C++20 with Boost.Asio io_uring (bot-fleet)
- Go (telemetry-ingester, artifact-checker, leaderboard-service)
- PostgreSQL (metadata, leaderboard metrics)
- Redis (queues, leaderboard cache/pubsub)
- MinIO (submission artifacts)
- Redpanda (Kafka-compatible event bus)
- Docker + docker-compose (local dev)
| Service | Path | Purpose | Ports |
|---|---|---|---|
| Submission Service | veltrix/submission-service | Ingests submissions, stores artifacts, enqueues sandbox jobs. | 8080 |
| Sandbox Manager | veltrix/sandbox-manager | Builds and runs contestant sandboxes, triggers benchmarks. | 8081 (health) |
| Bot Fleet | veltrix/bot-fleet | High-concurrency load generator with gRPC telemetry. | 7070 |
| Telemetry Ingester | veltrix/telemetry-ingester | Accepts gRPC telemetry, publishes to Redpanda. | 8090, 8091 |
| Artifact Checker | veltrix/artifact-checker | Reorders events, validates correctness, aggregates metrics. | 8092 (health) |
| Leaderboard Service | veltrix/leaderboard-service | Web UI + WebSocket broadcaster for live rankings. | 8085 |
.
├── veltrix/ # All microservices
├── docs/ # Onboarding and technical debt docs
├── SETUP.md
├── RUNNING.md
├── TROUBLESHOOTING.md
└── ARCHITECTURE.md