Application Architecture

The application architecture was designed to ensure high performance, scalability, and security, meeting the business and operational requirements of the system. This section presents the main modules, their responsibilities, and how they interact with each other, providing a clear view of the solution's structure and operation.

Architecture design#

img.png

Understanding the Key Modules of the Application#

TransactionConsumer: Consumes the kafka topic transaction-golden-data from Omni Data, enriching transaction information with domain fields, and then writing the transaction data to the TransactionData database. TransactionData: AWS database (RDS Oracle) with tables modeled exclusively for the solution, ensuring efficiency and performance in queries. TransactionAPI: Module responsible for exposing endpoints for transaction queries and resolution. Communicates with the TransactionData database to obtain the necessary information. Also provides an authentication endpoint, receiving client_id and client_secret, communicating with Keycloak to generate and return a JWT token to the client. When handling a pending issue, it communicates with Sitef by sending the corresponding resolution command, and also interacts with the Sitef Express database to update the resolution attempt marking in the LOG tables. If any step in the process fails, rollback and retry are performed until the configured timeout limit is exceeded. Keycloak: Authentication server responsible for generating and validating JWT tokens, ensuring the security and authenticity of requests. oTelCol: Module responsible for collecting application metrics and sending them to the analysis backoffice (Dynatrace, Splunk, etc.). All solution modules will generate metrics, which will be collected and sent to the analysis backoffice, allowing administrators to monitor the application's health and identify possible issues.