Multi-tier application
A multi-tier application is an application organized into distinct tiers that separate responsibilities and interact through defined dependencies or interfaces.
Functional Design and Architecture: Examples in Haskell
Layering is an organizational pattern that arranges software components into levels with constrained dependencies between levels.
- How it is used
- Organizes application responsibilities so business logic, implementations, and composition remain distinct.
- How deep it goes
- Defines layers, contrasts them with components, and develops sublayers, dependency checks, and functional boundary implementations.
- Examples
- Demonstrates a sandwich recipe interpreter, a typed key-value database interface, and a Servant web service split across Handler and AppL.
- What you can do after
- Evaluate/understand layer boundaries, identify invalid dependencies, and separate business logic from operational implementations.
Read how Functional Design and Architecture: Examples in Haskell explains multi-tier application →
Building Web APIs with ASP.NET Core
A layered system organizes communication through intermediary components that hide or mediate the services behind them.
- How it is used
- Uses intermediary services to improve a RESTful web API’s security, performance, and scalability.
- How deep it goes
- Explains component roles and expected benefits, but defers implementation until production deployment.
- Examples
- Illustrates the pattern with a board-game API, its DBMS, and proposed reverse-proxy and CDN layers.
- What you can do after
- Evaluate/understand it by identifying what each intermediary contributes before planning a production deployment.
Read how Building Web APIs with ASP.NET Core explains multi-tier application →
Go by Example
A layered package structure is an organization in which packages depend only on packages in lower layers of the structure.
- How it is used
- Organizes Go packages so higher-level services build on foundational packages without reverse imports.
- How deep it goes
- Defines one-way dependency direction and illustrates core service, REST API, and command packages; defers remaining implementations.
- Examples
- Uses io, net, and http, plus link, link/rest, and linkd packages.
- What you can do after
- Apply it to arrange core logic, REST delivery, and commands while avoiding import cycles.
BDD in Action, Second Edition
Layered architecture is a software architecture pattern that organizes responsibilities into layers with controlled dependencies between them.
- How it is used
- Uses separated layers to design scalable test automation and protect existing functionality while teams introduce improvements.
- How deep it goes
- Defines three test-automation layers and their responsibilities, then stops short of specifying complete implementation details.
- Examples
- Uses an existing airline system, journey maps, high-value workflows, and Specification, Domain, and Integration layer examples.
- What you can do after
- Design scalable test automation by separating business specifications, domain activities, and technology-specific integrations.
Read how BDD in Action, Second Edition explains multi-tier application →
Java Persistence with Spring Data and Hibernate epub
A layered architecture organizes an application into separate layers with distinct responsibilities and controlled dependencies.
- How it is used
- Organizes persistence, presentation, workflow, and business logic behind controlled interfaces.
- How deep it goes
- Defines three layers, dependency direction, and cross-cutting concerns, but stops short of concrete implementation configuration.
- Examples
- Uses an online auction application, browser interaction, persistent Java classes, and a persistence-layer architecture figure.
- What you can do after
- Evaluate application structure by assigning concerns to layers and checking dependencies against adjacent-layer interfaces.
Read how Java Persistence with Spring Data and Hibernate epub explains multi-tier application →
Terraform in Depth: Infrastructure as Code with Terraform and OpenTofu
A three-tier application is an application architecture that separates presentation, application, and data responsibilities into distinct tiers.
- How it is used
- Organizes Terraform infrastructure for a complete application whose presentation, application, and data responsibilities need separate deployment boundaries.
- How deep it goes
- Explains module composition, network placement, routing, security, and environment variation, but does not provide provider-specific resource configurations.
- Examples
- Uses a CDN, load balancer, API container, database, cache, public and private subnets, NAT, and environment-sized databases.
- What you can do after
- Build it from scratch by composing Terraform modules, wiring their inputs and outputs, and placing services across public and private networks.
Practices of the Python Pro
A multitier architecture organizes an application into separate layers or tiers with distinct responsibilities that can evolve independently.
- How it is used
- Organizes presentation, business logic, and persistence so each concern can evolve independently.
- How deep it goes
- Explains responsibilities, module boundaries, reuse, and team specialization without detailing implementation internals.
- Examples
- Uses Bark’s command-line interface, database, Python modules, CRUD operations, and GitHub-star import feature.
- What you can do after
- Builds applications with separate presentation, business-logic, and persistence layers that support later extension.
Read how Practices of the Python Pro explains multi-tier application →
Related concepts
- stratified designused by · An architectural pattern that organizes software into layers ordered from relatively stable foundations to more frequently changing elements.
- frontend developmenthas part · Frontend development is the practice of building the user-facing, client-side interfaces and behavior through which people interact with software.
- data layerhas part · A data layer is an architectural part of a system that organizes access to, management of, or persistence of data for other components.
- business logichas part · Business logic is the domain-specific rules, computations, and decisions that determine how a software system behaves and processes operations.
- domain layerhas part · A domain layer is an architectural part of an application that contains its domain concepts, rules, and behavior.
- hexagonal architecturecontrasts with · Hexagonal architecture is a software architecture pattern that isolates an application’s core logic from external systems through ports and adapters.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.






