expiration-cutoff-is-one-sided-despite-symmetric-matching

Status: IN

`_expire_events` uses `watermark - duration` as a one-sided cutoff for buffer cleanup, while `contains()` is symmetric; this is correct because future events can only arrive at or after the watermark

Source: entries/2026/05/29/topic-sliding-vs-tumbling-windows.md

JSON