liveBook · Manning

Multi-tier application

A multi-tier application is an application organized into distinct tiers that separate responsibilities and interact through defined dependencies or interfaces.

How 7 Manning books explain it

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.

Read how Go by Example explains multi-tier application →

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.

Read how Terraform in Depth: Infrastructure as Code with Terraform and OpenTofu explains multi-tier application →

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

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.