https://martinfowler.com/eaaCatalog/repository.html"Mediates between the domain and data mapping layers using a collection-like interface for accessing domain objects"
Отсюда суть патерна - быть посредником между слоем бизнес логики и инфраструктурным слоем хранения данных бизнес сущностей. Это также определяет область применения патерна: любые архитектуры где есть разделение бизнес логики и всего остального.
Часто в репозитории передают active record модели фрэймворков, которые не являются слоем бизнес логики. Потом пишут про, то что патерн зло.