Interface SequenceExtractor

All Known Implementing Classes:
MySqlSequenceExtractor, PostgresSequenceExtractor

public interface SequenceExtractor
Utility that takes Debezium event headers and computes a sequence number we can use to ensure the ordering of ChangeRecord items.

The sequence part is a monotonically increasing numeric sequence which we base our ordering on.

The source part provides the scope of validity of the sequence part. This is needed because many CDC sources don't provide a globally valid sequence. For example, the sequence may be based on transaction IDs, so it makes sense to compare them only if they are produced by the same database instance. Another example is the offset in a write-ahead log, then it makes sense to compare them only if they come from the same log file. Implementations must make sure the sequence is monotonically increasing only across the events with the same source.

  • Method Summary

    Modifier and Type
    Method
    Description
    long
    sequence(Map<String,?> debeziumOffset)
     
    long
    source(Map<String,?> debeziumPartition, Map<String,?> debeziumOffset)
     
  • Method Details

    • source

      long source(Map<String,?> debeziumPartition, Map<String,?> debeziumOffset)
    • sequence

      long sequence(Map<String,?> debeziumOffset)