Databricks' Feature Store now delivers a 200ms p99 end-to-end latency guarantee — measured from a raw event landing in Kafka to feature availability for model inference. For fraud detection and personalization systems that previously tolerated minutes-to-hours of feature lag from Spark batch jobs, this represents a structural shift in what a managed feature platform can deliver.
The architecture runs through four hops: events arrive in Kafka; Spark Real-Time Mode (RTM) on serverless Lakeflow Spark Delta Pipelines processes them continuously; updated aggregates flush to Lakebase via a streaming JDBC sink; Model Serving endpoints pull features from Lakebase at inference time. The key difference: RTM processes rows as they arrive rather than accumulating microbatches, removing the batch-boundary latency floor that made sub-second freshness impossible in earlier versions.
State management uses per-node RocksDB instances. For a rolling 10-minute transaction sum — a canonical fraud signal — each incoming event hits the local RocksDB store, increments the total, enforces window expiry, and pushes the updated value to Lakebase. The read-increment-write stays in memory; only the feature value crosses the network. Checkpointing is amortized across events rather than blocking per-row, preserving the latency budget.
Lakebase handles the write side. Small upserts from streaming aggregations create write-amplification traps for traditional storage. Lakebase's compute-storage separation handles this: high-throughput writes at streaming cadence without compaction pressure that degrades tail latencies in column-oriented formats.
Feature Store supports three window semantics. Tumbling windows align to wall-clock intervals, emitting only at boundaries — fresh at 12:10, stale until 12:20. Sliding windows overlap: a 10-minute window with 5-minute slide cuts staleness in half but persists the boundary problem. Rolling windows look backward from each event's timestamp with millisecond resolution, updating on every event. Fraud and personalization systems needing the 200ms SLA require rolling windows; tumbling windows at this cadence would waste the streaming investment.
| Window Type | Update Trigger | Staleness Behaviour | Suitable for 200 ms SLA? |
|---|---|---|---|
| Tumbling | Wall-clock boundary only | Fresh at boundary (e.g. 12:10), stale until next boundary (e.g. 12:20) | No — wastes streaming investment |
| Sliding | Fixed slide interval (e.g. every 5 min) | Staleness halved vs tumbling, but boundary problem persists | No — boundary latency floor remains |
| Rolling | Every incoming event | Millisecond resolution; updates on each event's timestamp | Yes — required for 200 ms SLA |
One feature definition now powers both offline batch and online streaming pipelines. Previously, fraud teams maintained separate batch jobs for baselines and bespoke streaming jobs for aggregations, each with its own infrastructure. Feature Store routes both through one definition and one framework — Spark RTM, Lakebase, and Model Serving orchestrated underneath. Production deployments will test whether this abstraction holds under schema evolution and backfills.
For architects evaluating real-time platforms, 200ms p99 anchors SLA conversations. The tradeoff: RocksDB-per-node state means horizontal scaling introduces coordination overhead when windows span multiple partitions. Assess this before committing to rolling-window aggregations at high cardinality.