A API da nossa aplicação será desenvolvida com Springboot 3. Deste modo, a principal forma arquitetural de desenvolvimento nesse ambiente é a Spring Boot Architecture.
Tal estratégia de arquitetura foi escolhida dada as recomendações da documentação do Spring. A partir disso, pode-se manter uma melhor organização das camadas da aplicação, assim como manter uma boa coesão entre os diferentes tipos de classes.

Define a camada onde estarão presentes os banco de dados que a aplicação se relaciona. Em nossa aplicação, esta camada será representada por um banco de dados PostgreSQL
Contém a lógica para o armazenamento no banco de dados. Em nossa aplicação, isto será aplicado por meio de repositories, que utilizaram a biblioteca do ambiente Spring “Spring Data JPA” para realizar o mapeamento objeto relacional das classes de modelo.
Contém toda a lógica de negócio, sendo responsável pela validação e autorização. Em nossa aplicação, essa camada estará representada pelas classes de Service.
Consiste em views, sendo o responsável pela autenticação e por se comunicar com frontend da aplicação por meio de requisições HTTP, esta camada ainda é responsável por mapear objetos para JSON e vice-versa. Em nossa aplicação, esta camada será representada pelas classes de Controller.