(untitled) (International Journal of Engineering and Computer Science, 2021)
This tutorial explains how to build a cloud-native architecture for fintech applications using scalable components and frameworks that provide enterprise-grade features. The tutorial focuses on applications that process payments and that expose a service-oriented public API, even if the concepts and components used can be extended to all sorts of fintech applications. provide illustrative step-by-step examples to show how each component can be implemented using open-source technologies. Testing and employment on the cloud are also considered. The reference architecture consists of: a distributed event-driven design pattern to decouple the business process from the storage mechanisms. The Distributed Data Store (DDS) component allows to store and query sensitive data in a performant way, providing out-of-the-box, high-availability; scalability; and enterprise-grade features, such as ACID transactions and a row-level security mechanism; a remarkable, open-source distributed engine that enables to massively parallelize ingestion, visualization, and mesh queries on large datasets, leveraging such a DDS; a highly scalable Cloud-Native API Gateway that exposes GraphQL APIs. It can also serve static content such as documentation; server-side rendering; and login pages, among others, for the UI scheme; a Native-Cloud Serverless Function executor that processes resilient workloads and enables a pay-for-use architecture. It automatically scales workers up and down in a pay-per-execution pricing model; a cloud-native load balancer to distribute workloads between multiple instances of the resilient microservice; a Managed Workflow Engine that orchestrates the execution of long-running business processes in a distributed way, internally relying on a durable DDS. The architecture is implemented at the level of a complete payment service. The focus is on how to build a scalable service adapter capable of performing resilient messaging and processing of payments between an exogenous payment manager and an internal event store.