Может ли служба домена вводить несколько репозиториев или работать с разными агрегированными корнями?
Я не вижу в этом проблем, так как считаю, что работа с несколькими агрегатами обычно там, где вам нужен домен сервис, поскольку кажется, что функциональность не подходит для конкретного агрегата. Если служба не получает соответствующие объекты, они могут быть переданы из проблемы интеграции / приложения. Фактически, вы, вероятно, захотите начать с этого: метод, который принимает соответствующие агрегаты. Вы можете обнаружить, что имеет смысл получить объекты в вызывающей программе перед вызовом метода службы.
Если да, будет ли это считаться нарушением принципа SRP?
SRP касается того, что делает ваш класс, а не того, что он использует, поэтому, если вы не добавляете больше функциональных возможностей, чем требуется, я не вижу, как это отрицательно влияет на SRP.