Ultra-Fast Anomaly Detection using Apache Spark Real-Time Mode¶
Summary¶
A production-pattern walkthrough demonstrating Spark Structured
Streaming's Real-Time Mode (RTM) for operational anomaly-detection
workloads — fraud detection, IoT monitoring, security signal processing,
and PII-leakage quarantine. The pipeline reads from Kafka, applies
stateless validation rules (data-quality checks + payload hygiene regex),
enriches events with an ALLOW / QUARANTINE decision + reasons, and
writes enriched JSON back to Kafka — all at sub-millisecond P95
latency and ~70K rows/sec sustained throughput on a 4-worker
cluster processing ~23 million Ethereum blockchain messages.
Key Takeaways¶
-
RTM eliminates the micro-batch latency floor — processing changes from an "airport shuttle" (wait to fill a batch) to a "moving walkway" (each event processed on arrival). Three architectural innovations: continuous data flow, pipeline scheduling (all stages run simultaneously), and streaming shuffle (in-memory inter-task data pass, bypassing disk). (Source: sources/2026-07-13-databricks-ultra-fast-anomaly-detection-spark-rtm)
-
Sub-millisecond P95, 1ms P99 latency at scale — processing ~23M records across 4 Kafka partitions,
processingLatencyMs(time from read to downstream-sink write) shows P0–P95 rounding to 0 (<0.5 ms) and P99 = 1 ms. Throughput sustained at 69,713 rows/sec. (Source: sources/2026-07-13-databricks-ultra-fast-anomaly-detection-spark-rtm) -
Single trigger-configuration change to switch latency class — existing Structured Streaming code needs no rewrite, no new API, no checkpoint format change. The
triggerparameter is the only modification to move from second-range micro-batch to millisecond- range RTM. (Source: sources/2026-07-13-databricks-ultra-fast-anomaly-detection-spark-rtm) -
At-least-once delivery with Kafka sink — downstream consumers must handle potential duplicates via idempotent writes or deduplication. RTM does not (yet) claim exactly-once at this trigger mode. (Source: sources/2026-07-13-databricks-ultra-fast-anomaly-detection-spark-rtm)
-
Unified platform thesis — RTM eliminates the "second engine" requirement (previously Flink or custom). Validated by production teams at Coinbase, DraftKings, and MakeMyTrip who consolidated analytical (second-range) and operational (millisecond-range) workloads onto one Spark stack. (Source: sources/2026-07-13-databricks-ultra-fast-anomaly-detection-spark-rtm)
-
Guardrail stream pattern — a single-pass Kafka→validate→enrich→Kafka pipeline producing per-event
ALLOW/QUARANTINEdecisions with detailed reason arrays. Positioned as a reusable operational pattern for real-time governance — "quarantine in real time with unified governance" rather than post-incident discovery. (Source: sources/2026-07-13-databricks-ultra-fast-anomaly-detection-spark-rtm) -
RTM cluster configuration constraints — requires Databricks Runtime 16.4 LTS+, dedicated (single-user) cluster, fixed worker count (autoscaling disabled), Photon disabled,
updateoutput mode. Micro-batch remains more cost-effective for workloads tolerating 1–2 seconds of latency. (Source: sources/2026-07-13-databricks-ultra-fast-anomaly-detection-spark-rtm)
Operational Numbers¶
| Metric | Value |
|---|---|
| Input rate | 65,592 rows/sec |
| Processing rate (sustained) | 69,713 rows/sec |
| Total records processed | ~23,213,628 |
| Kafka partitions | 4 |
| P0–P95 latency | <0.5 ms (rounds to 0) |
| P99 latency | 1 ms |
| Cluster | 4 workers (i3.xlarge), DBR 16.4 LTS |
| Dataset size | ~95 GB |
| Delivery guarantee | At-least-once (Kafka sink) |
Architectural Insights¶
Three RTM innovations (vs micro-batch)¶
- Continuous data flow — events processed as they arrive, no batch accumulation wait.
- Pipeline scheduling — all query stages run simultaneously with no blocking between stages.
- Streaming shuffle — data passed between tasks immediately in memory, bypassing disk I/O.
Workload fit guidance¶
- RTM — operational workloads where latency directly impacts business outcomes: fraud detection, real-time personalization, ML feature computation, IoT monitoring.
- Micro-batch — analytical workloads tolerating 1–2 seconds; more cost-effective (no fixed-worker / autoscaling-disabled constraint).
Caveats¶
- Tier-3 source (Databricks Blog); pattern walkthrough rather than internals deep-dive. RTM mechanism details (pre-allocated execution pipelines, asynchronous checkpointing) referenced but not explained.
- Numbers are for a stateless validation pipeline. Stateful operations (aggregations, windowing) may see higher latencies within the ~5 ms – 300 ms RTM range.
- Cluster must be dedicated, fixed-size, Photon-disabled — RTM does not compose with all Databricks serverless features yet.
- At-least-once only; no exactly-once claim for RTM + Kafka sink.
- Ethereum blockchain data used as a convenient reproducible dataset; no customer production workload numbers disclosed in this post.
Source¶
- Original: https://www.databricks.com/blog/ultra-fast-anomaly-detection-using-apache-spark-real-time-mode
- Raw markdown:
raw/databricks/2026-07-13-ultra-fast-anomaly-detection-using-apache-spark-real-time-mo-2adce8c6.md
Related¶
- systems/spark-streaming — the system this article extends with RTM
- systems/kafka — source and sink for the pipeline
- concepts/micro-batching — the prior execution model RTM replaces
- concepts/at-least-once-delivery — the delivery guarantee disclosed
- patterns/guardrail-stream-pipeline — the reusable pattern demonstrated
- patterns/single-trigger-latency-class-switch — one config change to switch latency class