Arquitetura da aplicação
A arquitetura da aplicação foi projetada para garantir alta performance, escalabilidade e segurança, atendendo aos requisitos de negócio e operacionais do sistema. Nesta seção, são apresentados os principais módulos, suas responsabilidades e como interagem entre si, proporcionando uma visão clara do funcionamento e da estrutura da solução.
Desenho da arquitetura#

Entendendo os módulos chave da aplicação#
TransactionConsumer: Consome tópico kafka transaction-golden-data do Omni Data, enriquecendo as informações da transação com os campos de domínio, e então gravando as informações das transações no banco de dados TransactionData. TransactionData: Banco de dados na AWS (RDS Oracle) com tabelas modeladas exclusivamente para a solução, garantindo eficiência e performance nas consultas. TransactionAPI: Módulo responsável por expor os endpoints de consulta e resolução de transações. Comunica-se com o banco de dados TransactionData para obter as informações necessárias. Provê também endpoint para autenticação, recebendo client_id e client_secret, comunicando com o Keycloak para gerar e retornar um token JWT para o cliente. Ao tratar uma pendência se comunica com o SiTef enviando o comando de resolução correspondente, e também faz a comunicação com a base de dados do SiTef Express, para atualizar a marcação da tentativa de resolução de pendência nas tabelas LOG, caso alguma etapa do processo falhe é feito rollback e retry até exceder o timeout limite configurado. Keycloak: Servidor de autenticação, responsável por gerar e validar tokens JWT, garantindo a segurança e autenticidade das requisições. oTelCol: Módulo responsável por coletar métricas da aplicação, e enviar para o backoffice de análise (Dynatrace, Splunk, etc...). Todos os módulos da solução irão gerar métricas, que serão coletadas e enviadas para o backoffice de análise, permitindo que os administradores possam monitorar a saúde da aplicação, e identificar possíveis problemas.