Stack

O DevPrime® Stack é o componente central e disponibiliza uma fundação com recursos que apoiam a estrutura dos projetos de software acelerando a modernização das aplicações.

A tecnologia é baseada no padrão em SOLID, Clean Code, Hexagonal Architecture e em Event-Driven Architecture, proporcionando o desacoplamento, testabilidade e redução de custos com manutenção, além de uma série de recursos disponibilizados por meio dos Adapters.

DevPrime Stack

As camadas Domain e Application concentram-se nas regras de negócio e na exposição pelo serviço de aplicação, proporcionando um comportamento previsível pela utilização da abordagem de Domain Driven Design (DDD) e a sua transformação em código fonte com classes nativas do DevPrime Foundation. O projeto de Domain compila e funciona independente dos demais projetos com o objetivo de garantir a manutenibilidade e testabilidade.

O DevPrime® Middleware é responsável pela integração do código do desenvolvedor com o DevPrime® Stack e serviços relacionados como Resilience, Retry e Circuit break que são executados em um cenário de falha no fluxo de execução da aplicação, logs automáticos, tratamentos de erros e demais recursos do DevPrime®.
Os adapters oferecem um conjunto de serviços para a fundação da aplicação (Web, Security, Observability, Heath Check, Services, Stream, State e App Center) e são responsáveis pelos aspectos de tecnologia oferecendo aceleradores com inteligência e comportamento autônomo conforme o detalhamento abaixo:

Adapter de Web
Esse recurso disponibiliza a exposição de API’s, Web Views e arquivos estáticos com suporte a comunicação por gRPC, HTTP, GraphQL. As API’s seguem a especificação OpenAPI (OpenAPI Specification) sendo expostas usando o padrão do Swagger e prontas para integração direta com API Gateway de preferência.

Adapter de Security
Esse recurso oferece suporte aos protocolos Open ID e OAuth 2 garantindo segurança na exposição das APIs e comunicação interna entre os Microservice, tornando transparente a integração com os provedores de identidade como Identity Server, Azure AD, Amazon Cognito.

Adapter de Observability
Esse recurso oferece suporte automático nos três pilares Logs, Tracing e Metrics utilizados pelas equipes de Site Reliability Engineering (SRE). O Logs são estruturados para serem facilmente indexados em ferramentas como o ELK (Elasticsearch, Logstash e Kibana). O Trace segue o padrão de Distributed Tracing / Open Telemetry, permitindo a visualização em ferramentas como Jaeger e outras. Também é possível a disponibilização de métricas customizadas para apoio ao negócio no formato do Prometheus.

Adapter de Health Check
Esse recurso verifica a disponibilidade da aplicação, permitindo que os orquestradores de containers como o Kubernetes possam monitorar a saúde do container e reiniciar, caso necessário.

Adapter de Services
Esse recurso simplifica a comunicação com serviços externos utilizando os padrões gRPC, HTTP ou GraphQL facilitando o trabalho das pessoas desenvolvedoras de software com suporte a rotinas automáticas de Retry e Circuit Break, evitando que falhas nas integrações prejudiquem a aplicação agregando resiliência dos processos, padronização e o melhor uso do recurso.

Adapter de Stream
Esse recurso disponibiliza suporte aos principais serviços de Stream para emissão e recebimento de eventos com as principais tecnologias do mercado, como o Kafka, RabbitMQ, Azure Service BUS, AWS SQS e mecanismos automáticos de Retry, Circuit Break e Reliency que entram em ação caso ocorram falhas. Para a utilização não é necessário implementações adicionais, bastando alterar as configurações e escolher o Stream de preferência.

Adapter de State
Esse recurso suporta abordagens modernas para persistência seguindo o conceito “Polyglot persistence” como SQLServer, MongoDB, Redis e outros. A pessoa desenvolvedora de software poderá optar por utilizar código nativo de banco de dados, EF (Entity Framework) ou Dapper. As rotinas de Retry e Circuit Break são acionadas automaticamente em caso de falhas.

Adapter AppCenter
Esse recurso disponibiliza uma integração com o DevPrime AppCenter para obter informações dos Microservice, alterar configurações distribuídas em real-time e estatísticas das aplicações.

Última modificação February 28, 2022 (83b02d3)