VajraQuant

An event-driven trading platform for Indian index options, built as small services that talk through Redis Streams and watched by agents all day.

The idea

Engineering first

VajraQuant started as the question of whether I could build institutional-style infrastructure on my own: live data in, decisions out, every step observable. I am the architect. I decide how it is shaped, what it is allowed to do and what counts as done. Agents write, test and watch the code, and I review about an hour of it a day.

This page is about the engineering. It deliberately has no performance numbers.

Pipeline

From tick to signal

  • Broker stream
  • Tick ingestion
  • 1-minute candles
  • Interval candles
  • Indicator engine
  • Orchestrator
  • Trader

Every stage is its own container. Redis Streams carry the data between them, with consumer groups, crash recovery for pending messages and per-stream time limits so memory never grows unbounded. Messages are packed in a binary format and ordered by timestamp-based IDs, so history can be rebuilt out of order without breaking anything.

Under the hood

What the platform contains

ServicesAbout twenty containers: authentication, historical data, option chains, a direction engine, a funds service, indicator computation, an orchestrator and a trader.
SpeedA tick-to-signal latency budget of under 50 ms, protected by performance tests. Indicator maths is compiled ahead of time with Numba.
ObservabilityPrometheus scrapes every service and Grafana draws it.
TestingA mock broker replays market data so the whole pipeline can be exercised without touching a real one.
FrontendA React interface for monitoring and controlling the system.
ResearchA separate backtesting project and an R&D catalogue keep research away from the live path.
What is interesting

Operating it matters more than writing it

  • Boring beats clever. Reconciling state with rate-limited external APIs is the hard part. Retries, idempotency and clear ownership of each key do more than any model.
  • Everything is a stream. One convention for keys and timestamps made services easy to replace and agents easy to point at.
  • Real-money code has a fence. Only the most senior agent lanes may change what touches the live path. Everything else watches and escalates.