Quadro comparativo com Websupport

A geração anterior da arquitetura - Websupport - foi utilizada no projeto de vários sistemas ao longo de quase duas décadas, com mais de 200 mil Pontos de Função produzidos. Foi baseada em bibliotecas e tecnologias acertadas, em destaque Java, Spring, JPA e JSF, as quais são mantidas até então. Entretanto, para novos projetos, indica-se a nova geração - a arquitetura Cloudsupport, orientada a microsserviços.

Abaixo tem-se um quadro resumo com as principais diferenças entre as duas gerações da arquitetura.

Característica Websupport Cloudsupport
Paradigma Monolítico Microsserviços
Camada de Persistência JPA (mapeamento) + Hibernate Apenas JPA
Camada de Negócio Spring e padrão “Feature Services” Spring e padrão “Feature Services”
Camada de Webservices Mapeamento por convenção, pouco aderente ao REST Mapeamento por anotações Cloudsupport
Camada de Apresentação Web Server-side com JSF + PrimeFaces Client-side com React + opcionalmente Next.js e PrimeReact
Camada de Apresentação Mobile Não definda; requer implementação adicional de webservices React Native + suite de UI Cloudsupport; backend nasce orientado a webservices
Trilha de Auditoria Via triggers de banco Via Spring JPA Auditing e, opcionalmente, complementada com triggers de banco
Processos Batch API da arquitetura com motor Spring Batch API da arquitetura com motor próprio e suporte a Processos Contínuos
Segurança Spring Security Spring Security com OIDC
Configuração por Ambiente Build-time (profiles Maven) Runtime (profiles Spring Boot + solução Cloudsupport para React)
Observabilidade Apenas logging Logging, tracing e métricas, integrados
Infraestrutura Recentemente adaptado para Kubernetes Projetado para Kubernetes
Escalabilidade Vertical Vertical e horizontal, com elasticidade
Alta Disponibilidade Limitada (requer sessão serializável + soluções de terceiros) Plena, 0 downtime em ambiente Kubernetes
Produtividade Esperada Alta Alta