| Interface | Description | 
|---|---|
| DataIteratorBatcher<T> | Batcher converts iterator of T into iterator of batched  RecordsWithSplitIds<RecordAndPosition<T>>, as FLIP-27'sSplitReader.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 | SplitWatermarkExtractorimplementation which uses an Iceberg timestamp column statistics
 to get the watermarks for theIcebergSourceSplit. | 
| DataIteratorReaderFunction<T> | A  ReaderFunctionimplementation that usesDataIterator. | 
| 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 |