Domain-oriented N-layer architecture is designed to create enterprise applications with distributed architecture mainly oriented to manage essential data volumes and accomplish the solid and loosely coupled principles. The following architecture diagram has a presentation layer, which has the responsibility of interacting with the user. Depending on the context, this layer can be a WPF application, WinForms, ASP.NET, or a Java application, because this layer is totally independent of the rest of the System. The n-layer architecture diagram below shows distributed interface layer, application layer, domain layer, persistence layer, and cross-cutting infrastructure layer. The distributed interface layer is when the back-end must be exposed to be used remotely. This layer is not required for non-distributed architecture.