| 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> | 
| Class | Description | 
|---|---|
| AvroGenericRecordReaderFunction | 
 Read Iceberg rows as  
GenericRecord. | 
| 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 |