Skip to main content

oxirs_stream/window/
mod.rs

1//! # Watermark-aware Window Operators
2//!
3//! This module hosts the *watermark-aware* window operators that complement
4//! the time-based windows already implemented in
5//! [`crate::processing::window`].  The latter offers tumbling / sliding /
6//! session windows driven by wall-clock time; the operators here are driven
7//! by event-time watermarks and therefore close their state deterministically
8//! when the input watermark advances past `window_end + allowed_lateness`.
9//!
10//! ## Submodules
11//!
12//! * [`joins`] — three watermark-driven window-join semantics:
13//!   * tumbling-tumbling
14//!   * tumbling-sliding
15//!   * session-session
16//!
17//! All joins use the shared [`crate::watermark::propagation::WatermarkPropagator`]
18//! contract: at every event admission the operator advances its internal
19//! watermark from the *minimum* of upstream watermarks, then emits/cleans up
20//! windows whose end time + allowed-lateness budget is below the watermark.
21
22pub mod joins;
23
24pub use joins::{
25    SessionSessionJoin, SessionSessionJoinConfig, TumblingSlidingJoin, TumblingSlidingJoinConfig,
26    TumblingTumblingJoin, TumblingTumblingJoinConfig, WindowJoinKey, WindowJoinResult,
27    WindowJoinStats,
28};