Expand description
Clock domains for batching streaming data into discrete time steps.
In Hydro, a Tick represents a logical clock that can be used to batch
unbounded streaming data into discrete, bounded time steps. This is essential
for implementing iterative algorithms, synchronizing data across multiple
streams, and performing aggregations over windows of data.
A tick is created from a top-level location (such as Process or Cluster)
using Location::tick. Once inside a tick, bounded live collections can be
manipulated with operations like fold, reduce, and cross-product, and the
results can be emitted back to the unbounded stream using methods like
all_ticks().
The Atomic wrapper provides atomicity guarantees within a tick, ensuring
that reads and writes within a tick are serialized.
The NoAtomic marker trait constrains APIs that cannot be called inside an atomic context.
Structs§
- Atomic
- A location wrapper that provides atomicity guarantees within a
Tick. - Tick
- Marks the stream as being inside the single global clock domain.