Project
Real-Time Risk Engine
Pre-trade risk evaluation with position limits, circuit breakers, fat-finger detection. gRPC, sub-µs latency.
Problem
Trading venues need pre-trade risk checks under 1 microsecond. Off-the-shelf solutions cost millions or add unacceptable latency.
Solution
Go-based risk engine with in-memory state, ordered rule evaluation, and three-state circuit breakers per account. Fail-closed semantics.
Architecture
gRPC service. Rules: validation → duplicate → circuit breaker → fat finger → notional → position. First rejection stops.
Implementation
func (cb *CircuitBreaker) Evaluate(order *Order) *RejectReason {
switch cb.states[order.AccountID] {
case CircuitClosed:
return nil
case CircuitOpen:
if time.Since(cb.openSince[order.AccountID]) > cb.maxOpenDuration {
cb.states[order.AccountID] = CircuitHalfOpen
return nil
}
return &RejectReason{Code: RejectCodeCircuitBreakerOpen}
}
return nil
}Vision
Open-source risk engine. Production-grade, sub-microsecond, formally verified risk invariants.