| Interface | Description | 
|---|---|
| DataIteratorBatcher<T> | 
 Batcher converts iterator of T into iterator of batched  
RecordsWithSplitIds<RecordAndPosition<T>>, as FLIP-27's SplitReader.fetch() returns
 batched records. | 
| ReaderFunction<T> | |
| SerializableRecordEmitter<T> | |
| SplitWatermarkExtractor | 
 The interface used to extract watermarks from splits. 
 | 
| Class | Description | 
|---|---|
| AvroGenericRecordReaderFunction | 
 Read Iceberg rows as  
GenericRecord. | 
| ColumnStatsWatermarkExtractor | 
SplitWatermarkExtractor implementation which uses an Iceberg timestamp column statistics
 to get the watermarks for the IcebergSourceSplit. | 
| DataIteratorReaderFunction<T> | 
 A  
ReaderFunction implementation that uses DataIterator. | 
| IcebergSourceReader<T> | |
| IcebergSourceReaderMetrics | |
| MetaDataReaderFunction | 
 Reading metadata tables (like snapshots, manifests, etc.) 
 | 
| RecordAndPosition<T> | 
 A record along with the reader position to be stored in the checkpoint. 
 | 
| RowDataReaderFunction |