Reactive Systems

Kolector UT, Argentina.

Reactive systems platform, Public Sector

Architecture design and software development

Challenge

Kolektor UT, a government consulting and services contractor needed to modernize the Taxpayer Statement and Payment system of the second most populated state in Argentina with a new approach and objective: to improve the responsiveness, scalability and availability of the legacy system. The system had to process data of 3.5+ Million of taxpayers and 80+ Million of tax liabilities.

Kolector UT, Argentina.

Solution

to understand the business language and domain model, we used the EventStorming technique in the Strategic Design stage and modeled the solution using DDD – Domain Driven Design. The new platform was designed with an event-driven approach that includes a CDC (change data capture) from data sources, an ETL tool to extract and filter, a business rules engine to process records that are passed to the stage business logic, a reactive system of actors to distribute state in a cloud-based architecture. Data at rest is managed by a distributed, fault-tolerant database that segregates reads from writes. The solution was fully tested on AWS public cloud, although the platform is hosted entirely on Openshift private cloud and its CI/CD pipeline is fully automated.

Results

The new platform was launched in June 2021 ingesting +100 million events, integrated into the legacy tax system and a new blockchain-based virtual wallet payment system. 

The results in Production showed a more resilient, scalable and responsive solution, with a simplified domain model that allows new functionalities to be introduced in a more agile and flexible way. During the following months, thanks to this implementation, a new tax system (Oracle PSRM) and a new discount module were also integrated in a transparent way for Taxpayers

Technology

  • ETL (Extract-Transform-Load): Apache NiFi
  • Business Rules Engine: Drools
  • Messaging Manager: Apache Kafka
  • Business Logic: Akka (Cluster, Streams, Persistence, Http)
  • BFF (Back For Frontend) and other microservices: Loopback Node.js/TypeScript
  • API Gateway: Kong
  • Databases: Apache Cassandra
  • Languages: Scala, Node.js, React.js, Python
  • Orchestration and containers: Docker, Kubernetes, Red Hat Openshift Container Platform
  • Testing on AWS: EKS, MSK, Akka Cloud
  • Integration and Continuous Deployments: Gitlab, Jenkins, Sonar
  • Tests: Postman, Taurus, Jmeter, Blazemeter
  • Monitoring and Observability: OpenSearch, Prometheus, Grafana, Jaeger/Zipkin, Lens