Verdict ingests payment transactions, scores risk in milliseconds via a Rust ML service, and routes flagged events to an AI agent for autonomous case investigation. All of it is observable in real time.
Event pipeline
What each hop does
Every component is designed to run in a real financial environment: sub-millisecond scoring, durable Kafka events, and AI-assisted investigation.
Transactions hit the ingestion service via REST and are immediately published to Kafka topics, enabling downstream services to react in milliseconds.
A Rust service consumes Kafka events and applies configurable ML models to produce a fraud risk score, all within a single-digit ms budget.
Transactions that cross the review threshold open a case. An LLM copilot queries account, merchant, and device history, then writes a brief the analyst can confirm.
Scoring roadmap
Card-not-present, account takeover, merchant collusion, and rings have different signal shapes. Serious platforms like Stripe Radar, issuer engines, and the card networks run an ensemble for that reason. Verdict ships one calibrated XGBoost today. The service boundary is already a gRPC score request, so the next models plug into the same hot path instead of a rewrite.
Live now: first specialist
IEEE-CIS XGBoostTabular gradient boosting on IEEE-CIS. This is not the finished stack. The same gRPC score request is the plug for sequence and graph specialists next.
Target ensemble
The auth-time specialist. Trees still win on high-cardinality payment features. SHAP comes back on the same gRPC hop so rules and the agent cite the same evidence.
Account, merchant, device, and geo-pair counters in Redis hashes. Written by a Kafka materializer, read on the scoring hop. Missing keys become 0.0 so the bus never stalls.
Windowed counts flatten multi-step attacks. A Transformer or state-space model on the raw event sequence catches cascades that aggregates miss. That is the 2026 accuracy edge.
Rings do not look like a single bad transaction. GraphSAGE / GAT embeddings on the entity graph surface shared devices, mule accounts, and collusive merchants.
Isolation forest or autoencoder for patterns that are not in yesterday's labels. Feeds a rule-authoring agent instead of silently replacing the supervised score.
Stack or weighted blend of the specialists, with drift monitors and bandit traffic splits. Counterfactual / uplift correction so blocked traffic does not silently poison labels.
The Case Queue surfaces every flagged transaction with full agent analysis, SHAP signals, and copilot recommendations, ready for one-keystroke disposition.