requireCheckpointIdOnRecord

@Singleton
@Named(value = "requireCheckpointIdOnRecordAndKeyOnState")
fun requireCheckpointIdOnRecord(@Named(value = "dataChannelMedium") dataChannelMedium: DataChannelMedium): Boolean

Because sockets uses multiple threads, state must be kept coherent by

  • matching AirbyteRecords to AirbyteStateMessages by CheckpointId (from additionalProperties['partition_id'])

  • ordering AirbyteStateMessages by CheckpointIndex (from additionalProperties['id'])