
Sentinel
Scores every banking transaction for fraud inside the critical payment authorisation window, where a slow answer counts as a failed one.
Engineering highlights
The core architectural breakthroughs.
High-scale engineering demand distilled into four verified production milestones.
Sub-50ms payment network SLA held through global peak surges
72.8% reduction in latency including 240 real-time feature lookups
Zero authorization timeouts; zero unscored default-approvals
Legitimate user false-positive declines reduced from 3.8% to 0.4%
Executive overview
The engineering challenge & solution.
Processing over 6,200 card transactions per second, the bank faced an uncompromising Visa/Mastercard SLA: the entire authorization loop had to resolve in 50ms. Legacy fraud engines took 140ms, forcing the bank to default-approve slow transactions. Sophisticated fraud syndicates exploited this by deliberately saturating the gateway to slip fraudulent purchases past un-evaluated safeguards.
We replaced the legacy Java monolith with an ultra-low-latency Go scoring daemon running compiled ONNX models accelerated via TensorRT. We built an in-memory sliding-window feature store using Redis Cluster and Kafka streaming consumers, enabling sub-5ms feature hydration for 240 dimensions per transaction.

Engineering governance
The three non-negotiables.
These are the architectural constraints that shaped every boundary — no trade-offs or compromises permitted.
38ms Hard p99 Inference Budget
Model scoring, network round-trips, and feature hydration must finish in 38ms; anything slower is classified as an authorization timeout.
240 Real-Time Rolling Features
Features like 'card velocity across 3 countries in 10 minutes' must be updated within 5ms of every swipe event.
Zero-Downtime Challenger Deploys
New machine learning models must be tested against live traffic in shadow mode before handling real transactions.
Sub-5ms Feature Hydration Across 240 Rolling Aggregates Under 10k QPS
Calculating transaction velocity across sliding 1-minute, 1-hour, and 24-hour windows across millions of cardholders created severe Redis lock contention and memory bandwidth saturation during peak shopping holidays.
We designed a zero-allocation circular buffer structure encoded directly into Redis bitfields. Rather than storing raw transaction records, incoming Kafka events update rolling Count-Min sketches and hyperloglog registers in real time. Feature hydration queries read packed binary arrays in a single pipelined socket operation.
Request lifecycle
How data moves through Sentinel.
Production verification
Measured outcomes in production.
Every metric below was captured under real production traffic and audited against historical baseline data.
Operational resilience
Automated safety guardrails.
Systems fail in production. Here is how Sentinel survives network partitions, upstream timeouts, and anomalous inputs without human intervention.
Sub-38ms Circuit Breaker
Instantly reverts to deterministic heuristic tree if inference exceeds 35ms.
Triple-Shadow Arbitration
New candidate models score traffic passively without blocking production.
Cardholder Anomaly Freeze
Sudden geographical jumps trigger multi-factor challenge without declining card.

Next step
Building a system with this level of demand?
Bring us the constraint that keeps your engineering leadership up at night — the latency ceiling, the compliance perimeter, or the unyielding reliability requirement.