Skip to content

Streaming

Data that is processed as it arrives instead of in nightly batches: events on a log, changes read from a database, windows that close when a watermark says they are done. The hard parts are not the speed. They are ordering, late data, duplicates, and knowing how far behind you are.

flowchart LR
  SRC[(Sources:<br/>apps, devices, database logs)] --> LOG[Durable log<br/>Kafka, Kinesis, Pub/Sub, Event Hubs]
  LOG --> PROC[Stream processing<br/>windows, joins, watermarks]
  LOG --> SINK[Sinks:<br/>lake tables, warehouse, search]
  PROC --> SINK
  LAG{{Consumer lag, late data, duplicates}} -.watch.- LOG
  LAG -.watch.- PROC

The shape of a streaming system. A durable log decouples producers from consumers, processing turns events into results, and three things (lag, lateness and duplicates) decide whether the output can be trusted.


Learn


Compare


Reference


Build


Certify


Related topics: Data engineering for the batch side of the same platform, and Databases for the stores that streams are read from and written to.