The Iterable API currently contains duplicative methods in various interfaces, including FindIterable, AggregateIterable, ListIndexesIterable, DistinctIterable, DatabaseIterable, and ChangeStreamIterable. These duplications impact code maintenance and can lead to inconsistencies.
Introduce internal interfaces and abstract classes, if necessary, to consolidate the duplicative methods and achieve a cleaner design without compromising backward and binary compatibility.
The objective is to improve code maintainability and consistency.