Core concept

stream.withWatermark("eventTime", "1 hour")
  .dropDuplicates("eventId", "eventTime")
Advertisement

How it works

State grows without watermark cleanup.

Advertisement

Trade-offs + gotchas

Idempotent processing. Kafka duplicate handling.