DEV Community

Discussion on: Estruturando uma Aplicação Server-Side

Collapse
 
nelsondarosa profile image
Nelson

Wendell, acha uma feature possível da aplicação que não necessáriamente faz parte do domínio dela como autenticação e autorização (acho que se isso faz ou não parte do domínio também é outro debate que pode ser aprofundado), mas que podem vir a possuir tanto Entidades, Serviços, Repositórios, Filtros e etc dedicados exclusivamente pra ela justificam a criação de uma nova camada? Dentro do conceito de microsserviços isso adquire outro aspecto pois geralmente a segurança é manipulada em um microsserviço exclusivo, mas no caso de um monolito, por exemplo, não iria criar um nivel de complexidade maior misturar features de interesse do domínio com features externas a esse domínio?

Collapse
 
wendell_adriel profile image
Wendell Adriel

Além dessa arquitetura de camadas, quando trabalho em um monolito eu divido a aplicação em módulos (é o que fazemos na empresa que trabalho atualmente). Então temos um módulo dedicado para autenticação e autorização.

Nesse caso fazemos isso no monolito para separar as responsabilidades de cada módulo, deixar a arquitetura e o código mais limpo e reutilizável e também para facilitar a manutenção.

Pense nos módulos como um agrupamento de microserviços, porém todos na mesma base de código.

A arquitetura que usamos na API da empresa que trabalho atualmente é baseada nesse projeto Open Source meu: github.com/WendellAdriel/larapi. Mesmo que tu não trabalhe com PHP, dando uma olhada nesse repo acho que tu vai entender como é essa separação por módulos que expliquei!

Valeu por puxar esse assunto pois é algo MUITO VÁLIDO de se falar e discutir quando falmaos de arquitetura de aplicações!

Collapse
 
nelsondarosa profile image
Nelson

Achei muito maneira essa solução de módulos dentro de um monolíto. Mesmo tendo um monolito relativamente grande, muitos projetos ficam nesse meio termo de não ter necessidade de microsserviço, mas ao mesmo tempo não caber dentro de um monolíto. É uma solução bem interessante.

Thread Thread
 
wendell_adriel profile image
Wendell Adriel

Tem dado certo na empresa que trabalho, e é um SaaS complexo e grande! A base da nossa API é nesse repo/projeto que eu criei que enviei no outro comentário! Acho legal que tenha gostado dessa solução! Eu tenho usado também em projetos pessoais e alguns freelas essa solução e até o momento me atende bem!