A arquitetura em camadas, também conhecida como layered architecture é uma abordagem pra estruturar o sistema dividindo em diferentes níveis de abstrações (camadas), cada uma com responsabilidades específicas. Essa prática ajuda a isolar responsabilidades, facilita a manutenção e escalabilidade.
Podemos assim, dividir o sistema em uma, duas três ou n camadas dependendo do objetivo e da complexidade do sistema.
O que é, de fato, arquitetura em camadas
Muitas pessoas confundem o que é “arquitetura em camadas” e qual a relação dela com o monolito, clean architecture, hexagonal, etc. Não é um modelo de implantação (como monolito ou microserviços). É um modelo de organização interna.
Isso significa que:
- você pode ter um monolito em camadas
- você pode ter um microserviço em camadas
- você pode ter uma arquitetura limpa (clean architecture) em camadas.
Como as camadas funcionam?
Cada camada se concentra em um aspecto do sistema. Cada camada oferece serviços à camada imediatamente superior e consome serviços da camada inferior. A separação é baseada em responsabilidades, garantindo que mudanças em uma camada tenham impacto mínimo nas outras.
Topologia

Existem diversas variações dessa topologia (por exemplo com uma camada de serviço ou agrupamentos de camadas em módulos), ou seja, mais ou menos camadas existirão.
Cada uma das camadas tem uma função ou responsabilidade específica dentro da arquitetura, por exemplo:
- Apresentação: Lida com toda interface do usuário e lógicas de comunicação com navegadores.
- Negócio: Executa operações e fluxos de negócios específicos associados à uma requisição
- Persistência: Persistir ou recuperar informações salvas em alguma unidade de armazenamento
- Banco de dados: responsável por mantes os dados de forma física.
Cada camada forma uma abstração em volta de sua necessidade e trabalho a ser realizado dentro de uma requisição em particular. Além disso, barreiras devem existir de forma implícita entre elas. Como assim? A camada de apresentação não deveria saber ou se preocupar em como recuperar informações de um cliente ou produto (o mesmo aplica-se para as demais camadas presentes na arquitetura)
Variações do Modelo
Camada Fechada
Seguem uma hierarquia rígida, onde cada camada acessa apenas a camada diretamente inferior

Repare que nesse exemplo acima, como todas as camadas estão fechadas o fluxo deve ocorrer exatamente da forma em que elas foram definidas e posicionadas hierarquicamente.
Camada Aberta
Permitem que uma camada acesse qualquer camada abaixo dela, favorecendo a flexibilidade me alguma situações.

Já nesse outro exemplo, podemos ver uma variação com uma nova camada. A camada de serviço. Ao observar, podemos ver que a camada de serviço está marcada como aberta. Isso quer dizer que ela não é obrigatória em todas as requisições ou fluxos.
- A camada de apresentação fala com a camada de negócio
- A camada de negócio fala com a camada de serviço ou persistência
- A camada de serviço fala com a camada de persistência
- A camada de persistência fala com a camada do bando de dados
Camadas Lógicas vs. Camadas Físicas
Ao aprofundar o conhecimento sobre as camadas você certamente vai se deparar com dois termos camadas lógicas e camadas físicas. Em inglês Tiers ou Nodes. Analise a imagem abaixo. Com base nela vamos nos aprofundar no conceito abordado nesse tópico.

Camadas Lógicas (Layers)
Elas se referem a como o código do software é organizado e dividido. É uma separação conceitual de responsabilidades para manter o projeto limpo e fácil de dar manutenção. A imagem mostra uma arquitetura clássica de 4 camadas lógicas:
- Presentation Layer (Apresentação): É a interface com o usuário. Aquilo que a pessoa vê e interage (telas, botões, páginas web, ou até uma API).
- Business Layer (Negócios): É o "cérebro" da aplicação. Onde ficam as regras de negócio, cálculos, validações e a lógica principal.
- Persistence Layer (Persistência): É o código responsável por pegar os dados da camada de negócios e prepará-los para serem salvos (ou lidos) no banco de dados. Pense em frameworks como Hibernate (Java) ou Entity Framework (C#).
- Database Layer (Banco de Dados): É onde o dado realmente vive fisicamente, como o SQL Server, MySQL, PostgreSQL, etc.
Camadas Físicas (Tiers)
Aqui é onde a mágica dos blocos azuis 3D da imagem entra.
As camadas físicas representam a infraestrutura, ou seja, onde esse código vai rodar. São os servidores físicos, máquinas virtuais ou containers.
A grande sacada da imagem é mostrar que você pode distribuir suas camadas lógicas (código) de várias formas diferentes em suas camadas físicas (servidores). Vamos olhar os três exemplos da imagem, da direita para a esquerda:
- O Bloco da Direita (1-Tier / Monolito):
- O que está acontecendo: Todas as quatro camadas lógicas estão empacotadas dentro de um único bloco azul.
- Na prática: Significa que a interface visual, a lógica, o código de banco de dados e o próprio servidor de banco de dados estão rodando na mesma máquina física.
- Uso comum: Aplicações desktop simples, ambientes de desenvolvimento local ou sistemas legados bem pequenos.
- O Bloco da Esquerda (2-Tier):
- O que está acontecendo: Temos dois blocos azuis. O de cima contém Apresentação, Negócios e Persistência. A setinha aponta para um bloco separado contendo apenas o Banco de Dados.
- Na prática: Você tem um Servidor de Aplicação rodando todo o código do seu programa, e ele se conecta via rede a um Servidor de Banco de Dados separado.
- Uso comum: A maioria das aplicações web tradicionais e sistemas corporativos internos. Se o servidor de aplicação cair, o banco de dados continua intacto em outra máquina.
- O Bloco do Meio (3-Tier):
- O que está acontecendo: Temos três blocos azuis empilhados. A Apresentação está isolada no topo. Negócios e Persistência estão no meio. O Banco de Dados está embaixo.
- Na prática: Você tem um servidor apenas para a interface (ex: um servidor web entregando o front-end em React/Angular), que se comunica pela rede com um servidor focado apenas na lógica (o back-end), que por sua vez se comunica com o servidor de banco de dados.
- Uso comum: Aplicações modernas, escaláveis e seguras. Se você tiver muitos usuários acessando, pode colocar mais servidores só na camada de apresentação, sem precisar duplicar o banco de dados.