I am learning and working out a sample project applying onion architecture and domain driven design.
As per my understanding I have drafted a small presentation and attached as an image in this post.
I need clarifications on layers of onion architecture and its implementation. Could you explain based on my presentation?
Core Project:
Domain Layer - entities, value objects, aggregate root, domain exception objects.
Domain Service Layer - business logic contracts.
Infrastructure Service Layer - persistence contracts, repository contracts, email and sms contracts, domain events and integration events contracts.
Application Service Layer - orchestration of infrastructure and domain service interfaces for uses cases.
Indentity Project:
Web Api Layer - controllers, configuration, composition root etc.
Infrastructure Layer - persistence implementation, repository implementation, email and sms implementation, message queuing etc.
Where would I implement contracts of the domain service layer from core project?