Arquitetura Web

Boa noite galera,
Gostaria da opinião de vocês sobre a arquitetura que utilizo em um fluxo de requisição web normalmente,quando recebo um request eu chamo meu managedBean e o mesmo delega a ação para uma classe de serviço(ou um facade), o meu facade faz a chamada para um repositório e por fim este repositório faz a chamada para um DAO(ou alguma outra estrategia de persistência aos dados), este é o fluxo exemplificado de maneira macro e genérico, mas gostaria de saber a opinião de vcs, acham que existem muitas camadas neste processo? Gostaria de ouvir outros pontos de vista e assim iniciar uma discussão sobre isso.

O que a maioria dos puristas defendem é isso ai que falou, mesmo que na prática se torne algo somente burocrático “para se um dia precisar…”. Mas na minha opinião, se não existem aplicações client/server na jogada, a Controller já pode ser considerada como um serviço REST por exemplo, que pode servir a vários tipos de aplicações, como mobile/desktop, e claro HTML. A Controller vai fazer o meio de campo entre o objeto trafegado no formato json e o Domínio da aplicação, onde tem seu Repositorio por exemplo.