Kaizen Blitz Icon.png


Overview

The main goal was to design a solution architecture and implement it for a given project - transaction processing for banks (via file and/or API calls) and allows users to view their processed transactions. The transaction processing was based on certain rules and card programs, and the project also required the admins from banks to be able to add more rules. The KPI was to be able to process a one million record transaction file and up to one million API calls within a day.


Quality Attributes - Considerations

We were expected to conform to the ISO25010 quality attributes as much as possible, but the main ones that we were focusing on were:

  1. Security
    1. As there is payment data involved - securing data in a PCI-compliant manner
    2. Securing traffic - HTTPS
    3. Storing secrets, such as RDS credentials securely
  2. Maintainability
  3. Availability
    1. Resilience and data recovery - Should the system go down, our RTO is 1 hour with minimal loss of data.
    2. Daily deployments - no downtime is allowed during deployments, validating new deployments with health checks
  4. Performance
    1. Speed
      1. In order to achieve our KPI of processing a one-million-record transaction file and up to one million records via API calls within a day
  5. Scalability
    1. The application should be able to scale up and down according to demand

Solution Architecture

Appendix E - Solution Architecture.png


Frontend

https://indify.co/widgets/live/gallery/owzahSfi7e0Od7ndJcNM