Я изучаю DDD, и я немного потерял уровень инфраструктуры:
Как я понимаю, "все хорошие приложения DDD" должны иметь 4 уровня: презентация, приложение, домен и инфраструктура. Доступ к базе данных должен осуществляться с помощью репозиториев. Интерфейсы репозитория должны быть в реализации уровня домена и репозитория - в инфраструктуре (ссылка DDD: где сохранить доменные интерфейсы, инфраструктуру?).
Уровень приложения, домена и инфраструктуры должен/может иметь службы (ссылка www.lostechies.com/blogs/jimmy_bogard/archive/2008/08/21/services-in-domain-driven-design.aspx), например, EmailService на уровне инфраструктуры, который отправляет сообщения электронной почты.
НО, внутри уровня инфраструктуры у нас есть реализации репозитория, которые используются для доступа к базе данных. Итак, в этом случае репозитории являются службами базы данных? В чем разница между сервисом инфраструктуры и репозиторием?
Спасибо заранее!