Skip to content

Concepts

This section explains the foundational ideas behind Datum. Each concept corresponds directly to an Akka Streams concept — the names and behavior are intentionally familiar.

Pages in this section

PageWhat it covers
Source, Flow & SinkThe three building-block types, their type parameters, and how they compose
MaterializationWhat "running" a stream means, StreamCompletion, and materialized values
BackpressureHow Datum prevents fast producers from overwhelming slow consumers
Blueprint vs. RunThe invariant that building a graph never starts execution
Execution ModelThread pool, fused execution, the typed-linear fast path, and spin-then-park

If you are coming from Akka Streams, the concepts map one-to-one. The main difference is that Datum's internal execution is pull-based (a chain fuses to a Box<dyn Iterator>), even though the public vocabulary uses push-shaped names (push, pull, demand).