Some datastores (e.g. Neo4J) allow delaying the actual data retrieval by returning Iterable instead of Collection types. This can significantly improve performance especially when working with large result sets. As our findAll(…) methods all return List instances we force eager retrieval of the data in any case.
So we could change the return types of findAll(…) methods for Repository and have store specific ones override those methods to return List again in case these stores can only return Collection instances anyway (e.g. JPA, Mongo).