Architecture

Architecture

Modern Architecture to Build Maintainable Software Solutions

ABP is an opinionated yet flexible infrastructure for building modular, maintainable, and scalable .NET applications, supporting modern architectural principles like DDD, microservices, and multi-tenancy.

Modular Monolith Architecture

ABP provides all the necessary infrastructure and tools to build completely modular applications and re-usable application modules. Take advantage of pre-built application modules and create your modular monolithic application with best practices.

Chat

Each module handles specific business functions and communicates via clear interfaces, ensuring high cohesion and low coupling.

SIMPLE DEPLOYMENT UNIT

The entire application is deployed as one unit, simplifying deployment processes and reducing operational complexity.

INTERNAL MODULARITY

Although it is a single application, it is organized into separate modules, each responsible for a specific domain or functionality.

DEFINED INTERFACES

Modules communicate through explicit interfaces, ensuring clear boundaries and minimizing interdependencies.

What is Modular Monolith Architecture?

Microservice Architecture

The ABP platform components have been designed to be compatible and work well with distributed and microservice systems.

UI Application

Each module handles specific business functions and communicates via clear interfaces, ensuring high cohesion and low coupling.

Single Responsibility

Each service focuses on a distinct business function (e.g., user management, order processing, payment).

Independent Deployment

A service can be updated or deployed without affecting the entire system.

Decentralized Data Management

Every service typically owns its database or data store, allowing it to choose the best storage technology for its problem while requiring data consistency and integration patterns.

Inter-Service Communication

Services interact using protocols like HTTP, gRPC, or message queues (e.g., RabbitMQ, Kafka).

What is Microservice Architecture?

Domain Driven Design

ABP simplifies and standardizes implementing Domain Driven Design (DDD) to build complex yet maintainable software solutions.

Supports Complex Domains

DDD is especially beneficial in complex problem spaces, helping teams manage complexity through modeling techniques and strategic design patterns.

Improved Code Structure

By emphasizing bounded contexts and aggregates, DDD leads to well-organized codebases that reflect domain boundaries and reduce unnecessary dependencies.

Enhanced Maintainability

Clear separation of concerns and encapsulation of domain rules make it easier to adapt, test, and evolve the system as business needs change.

Better Scalability Decisions

DDD encourages modular design through bounded contexts, which helps teams identify what parts of the system can be scaled independently or evolved into microservices.

What is Domain Driven Design?

Multi-tenancy / SaaS

ABP provides a complete multi-tenancy system for each aspect of your application. You can build SaaS applications without caring about the complexity of multi-tenancy.

Cheaper

You share the hardware and software among customers, you reduce costs and serve the maximum number of customers.

Consistent User Experience

Since all customers use the latest version, we maintain a single codebase and deliver updates to everyone simultaneously.

Easy Updates

A single codebase and infrastructure simplify updates and reduce the complexity of managing multiple instances, easing system maintenance.

Scalable

During demand spikes, adding servers behind a load balancer improves scalability and responsiveness—unlike on-premises systems, where resource scaling per tenant is difficult.

Faster Onboarding

New tenants can be onboarded quickly by simply adding a row to the Tenants table—no need for separate environments.

What is Multi-tenancy / SaaS?