AWS Partner Network (APN) Blog
How Yugabyte Scaled Banking-as-a-Service for the Temenos High-Water Benchmark
By David Walker, Field CTO – Yugabyte
By James Craig, Sr. Partner Solutions Architect – AWS
Yugabyte |
Temenos is one of the largest banking independent software vendors (ISVs) in the world, serving more than 40 of the top 50 banks while also consistently devoting 20% of annual revenue to research and development (R&D).
Innovation underpins Temenos’ success and is part of the company’s DNA. This mindset has led the organization to regularly benchmark key offerings, as teams seek to exceed the capacity their largest customers are likely to need. This is known as the Temenos high-water benchmark and was last run in 2019 on Amazon Web Services (AWS).
In 2022, Temenos set itself the challenge of doubling throughput the high-water benchmark used to measure its T24 banking product. This meant increasing throughput from 50,000 to 100,000 business transactions per second, where each transaction represents a real-world customer interaction.
Interactions could be as simple as an account balance lookup (single database read), or as complex as completing a payment process (multiple database reads and writes with ACID-compliant transactional consistency).
The workload profile of Temenos’ high-water benchmark accurately reflects the demand it anticipates from the largest retail banking customers’ operations:
- 75,000 simple business transactions, resulting in over 100,000 database operations per second.
- 25,000 complex business transactions, generating over 400,000 database transactions per second.
The project goal was to simulate online banking, scaled for the biggest banks in the world. This demanded massive throughput of complex, ACID-compliant transactions with a high level of resilience and consistently low latency across multiple regional availability zones.
In this post, we will look at the complex requirements for this benchmark, and learn how the combination of Yugabyte’s open-source YugabyteDB, running on AWS, powered Temenos’ software to reach higher performance than ever achieved before. Yugabyte is an AWS Partner and a cloud-native relational database for business-critical workloads. YugabyteDB is available on AWS Marketplace in both fully-managed and self-managed forms.
AWS Infrastructure
Yugabyte and AWS worked hand-in-hand with the Temenos team on the benchmark, solving problems as they occurred, and tuning the software and infrastructure to ensure the combination of Yugabyte, Temenos, and AWS hit the benchmark goals.
Temenos selected AWS as the most appropriate platform for the benchmark project. This decision was made because of the strength and depth of the collaboration that was going to be important when scaling out to more than twice the throughput the previous benchmark exercise had achieved.
AWS had been the cloud partner for the 2019 benchmark as well, but this time the sights were set much higher. The AWS infrastructure platform for this benchmarking project, where the application consists of many microservices, was a combination of AWS Lambda functions and Kubernetes services running in Amazon Elastic Kubernetes Service (Amazon EKS).
The data layer consists of three separate databases:
- The first handles the session cache for all connected users (Amazon ElastiCache for Redis).
- The second handles the simple account queries (MongoDB).
- The third is dedicated to the complex, updating transactions that mandate transactional consistency.
This third database bears the critical load that makes banking-as-a-service a reality. YugabyteDB was chosen for this role because it combines the horizontal scaling of a cloud-native database with the ACID-compliant consistency of a traditional SQL database.
Initially, the transactional database was going to be PostgreSQL, but Temenos realized it could not scale a monolithic PostgreSQL database to support the transaction levels it was now targeting. The company did not want to complicate its microservices with manual sharding, read replicas, or any other methods that monolithic databases use to scale in cloud environments.
It’s worth taking a moment to look at the Temenos data layer architecture, because it reflects the various workloads that any large-scale, complex cloud app might expect to support.
Figure 1 – Temenos high-water benchmark AWS architecture.
AWS presented reliable, scalable services to pull this complex picture together, allowing the vendor teams to operate independently of each other to achieve their goals.
Demanding Non-Functional Requirements
As well as meeting core functional requirements (throughput and latency), the project also had to meet many critical non-functional requirements.
Figure 2 – Failure domains designed to meet availability requirements.
The first and most obvious requirement is availability. A YugabyteDB cluster is typically deployed across three failure domains, with a replication factor of at least three. A failure domain can be an availability zone, a cloud region, or even a cloud supplier. You can get more detail on how this replication is achieved in the Yugabyte documentation. This means no single failure can disrupt the database.
Beyond high availability, there was also a high bar for recovery point objective (RPO) and recovery time objective (RTO) in the event of failure. The demand was zero data loss and minimal time to recovery. YugabyteDB achieves this (RPO = 0 and RTO = 3 seconds) at a level that would challenge any cloud-native database, but to achieve this while maintaining transactional consistency is a game-changer for scaling banking applications.
Temenos also wanted a partner whose product was open source with a large and active developer community. It wanted the product to be available as a fully managed service and self-managed service, and YugabyteDB delivers all of this.
YugabyteDB Architecture
The next step is to examine how microservices operate on multiple databases.
The YugabyteDB JDBC Driver allows the database to load balance service requests to optimize database throughput. As far as the application is concerned, this looks like a standard PostgreSQL driver, as the asymmetric scaling of the databases reflects the volume of transactions and the data it handles. With YugabyteDB, a “small” database doesn’t necessarily mean a simple schema.
For the actual benchmark run, the management platform was used solely for monitoring—we’ll see some of the results below—but YugabyteDB Anywhere can deliver a high level of automation for day-one and day-two operations.
Figure 3 – Yugabyte architecture on AWS.
Meeting the availability requirements demands this complete multi-master setup. All data is replicated in each AWS Availability Zone (AZ), and each AZ can be a Raft consensus leader, so the database transparently survives an AZ failure.
Results for the Business
The breakout target of 100,000 business transactions per second was achieved, but this was no arbitrary benchmark—it was a realistic emulation of a large-scale, online, retail banking operation. The critical new dimension was database modernization, from monolithic to distributed SQL.
Temenos can now offer all of its banking customers a cloud-based solution with unlimited scaling, at a fraction of the equivalent cost of proprietary hardware and software.
Equally important, as environmental audits and targets become mainstream, the environmental cost of the new high-water benchmark is less than one quarter of the previous per-transaction cost, using a leaner and more performant architecture.
“Yugabyte brings exceptional technology performance, scale, and resilience to this partnership,” says Tony Coleman, Chief Technology Officer at Temenos. “Along with its unrivaled global database expertise and its service capabilities, YugabyteDB was a natural fit with our vision for the future of our technology cloud-based proposition.”
Results in Numbers
The first 30 minutes of the benchmark execution was spent ramping up the client load by injecting a typical business mix of requests into the core application.
The application (running in Amazon EKS) creates new pods to meet demand, growing from one pod to more than 150 pods, with 36 threads per pod by the time the load is at maximum. At that point, the goal of 100,000 business transactions per second was being achieved.
A continuous load was then applied for 30 minutes while performance was monitored and measured.
The following charts indicate how well the load was supported. Firstly, the YugabyteDB SQL (YSQL) database operations, each of which is a database transaction.
Figure 4 – YugabyteDB SQL operations volumes over time.
The loads reflect the profile of the business transactions mix. Once the maximum was achieved (tracking the growth of the application pods to the 13:00 mark), it was maintained consistently for the following period.
Just as significant is the latency, which is remarkably consistent, showing the stability and sustainability of the architecture.
Figure 5 – YugabyteDB SQL latency over time.
Conclusion
Temenos’ continuous high-spend R&D reflects its insistence that there is always a better offering the company can bring to market. This insistence translates to the demands Temenos placed on its partners in this project, not just to deliver the base capabilities but to come together as a team and knit features into a solution.
Critical to the success of the project was the explicit definition of the non-functional requirements. These provided the framework for the architecture that represented a guardrail within which the pursuit of the more quantitative goals of throughput and latency could be framed in terms of a succession of sprints. Each sprint having its own incremental success measures made it simpler for the team to cooperate and see their final success growing closer.
YugabyteDB users can leverage the compute power, scalability, and geographical reach of AWS to achieve unlimited scaling and high resilience without having to re-engineer their applications or pay for expensive software licenses.
To learn more and make use of YugabyteDB for your own workloads, sign up for the free YugabyteDB-as-a-service on AWS with a built-in getting started tutorial. You can also learn more about YugabyteDB added services on AWS Marketplace.
Visit Yugabyte University for its wealth of further learning resources, and we welcome you to become part of the YugabyteDB community.
Yugabyte – AWS Partner Spotlight
Yugabyte is an AWS Partner and a cloud-native relational database for business-critical workloads. YugabyteDB is available on AWS Marketplace in both fully-managed and self-managed forms.