I am learning DDD and I am a little bit lost in the Infrastructure layer.
As I understand, "all good DDD applications" should have 4 layers: Presentation, Application, Domain, and Infrastructure. The database should be accessed using Repositories. Repository interfaces should be in Domain layer and repository implementation - in Infrastructure (reference DDD: Where to keep domain Interfaces, the Infrastructure?).
Application, Domain, and Infrastructure layer should/may have services (reference Services in Domain-Driven Design), for example, EmailService in Infrastructure layer which sends e-mail messages.
BUT, inside the Infrastructure layer, we have repository implementations, which are used to access the database. So, in this case, repositories are database services? What is the difference between Infrastructure service and repository?
Thanks in advance!