Uploaded image for project: 'Beam'
  1. Beam
  2. BEAM-2467

KinesisIO watermark based on approximateArrivalTimestamp

Details

    • Improvement
    • Status: Resolved
    • P2
    • Resolution: Fixed
    • None
    • 2.2.0
    • io-java-kinesis
    • None

    Description

      In Kinesis we can start reading the stream at some point in the past during the retention period (up to 7 days). With current approach for setting record's timestamp and watermark (both are always set to current time, i.e. Instant.now()), we can't observe the actual position in the stream.

      So the idea is to change this behaviour and set the record timestamp based on the ApproximateArrivalTimestamp. Watermark will be set accordingly to the last read record's timestamp.

      ApproximateArrivalTimestamp is still some approximation and may result in having records with out-of-order timestamp's which in turn may result in some events marked as late. This however should not be a frequent issue and even if it happens it should be a matter of milliseconds or seconds so can be handled even with a tiny allowedLateness setting

      Attachments

        Issue Links

          Activity

            People

              pawel.kaczmarczyk Paweł Kaczmarczyk
              pawel.kaczmarczyk Paweł Kaczmarczyk
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: