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.
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:
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.

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:
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)
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.
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.