3 Layer Architecture
A three-layer architecture is a common software design pattern that divides an application into three distinct layers.
A layer is a logically separated part of the application.
Presentation Layer - Handles user clicks, HTTP requests, and provides the API for user interaction.
Domain Layer - Domain(business) logic of the application. This layer handles data and converts it to other data structures.
Data Access Layer - Provides access to the database and manages transactions.
Note
Presentation Layer can initiate calls to code from Domain Layer, not vice versa.
Domain Layer can initiate calls to code from Data Access Layer, not vice versa.