Apache Storm Component Guide
Also available as:
PDF
loading table of contents...

Guarantees

The windowing functionality in Storm core provides at-least-once guarantee. Values emitted from a bolt’s execute(TupleWindow inputWindow) method are automatically anchored to all tuples in the inputWindow. Downstream bolts are expected to ack the received tuple (the tuple emitted from the windowed bolt) to complete the tuple tree. If not acked, the tuples will be replayed and the windowing computation will be reevaluated.

Tuples in a window are automatically acknowledged when they fall out of the window after windowLength + slidingInterval. Note that the configuration topology.message.timeout.secs should be more than windowLength + slidingInterval for time-based windows; otherwise the tuples will time out and be replayed. This can result in duplicate evaluations. For count-based windows, adjust the configuration so that windowLength + slidingInterval tuples can be received within the timeout period.