Skip to main content

Performance and Scaling

Updated over a year ago

Introduction

SaaS applications need to be scalable to handle varying levels of user demand. The application should be able to handle an increasing number of users and data without compromising on performance. The performance of a SaaS application is critical as users expect fast and responsive applications. The application should be optimized to deliver high performance even under heavy load.

Zero Friction Performance and Scaling

Introduction

The Zero Friction's application scales compute and database capacity automatically, linked to the growing numbers of service locations, without any human interaction. This scaling allows for exceptional performance in performing business processes, independant of the volume of such transactions.

Background vs Batch processing scaling

The application has a clear architectural boundary between front-end facing processes (APIs) and background-oriented processes (event-driven). The processes that are running in the background have no direct impact on user interface performance, and are typically compute-heavy. Such processes take care of automatic scaling of the architecture, as well as throtling to prevent a system overload. The scalabe and event-driven nature of this architecture allows for exceptional performance compared to traditional, slow, batch-type billing solutions when taking a look at e.g. invoice generation or payment processing processes.

User load scaling

One of the criteria of a good scalable architecture is making sure the user interface sees no impact on responsiveness when there's a lot of background activity. Because of the clear seggregation between API and event(background)-based processing, Zero Friction stays responsive during peak processing moments.

Benchmarks

Introduction

To give an insight in the SAAS platform performance and scalability, a number of benchmarks were performed. Due to the scalable nature of the platform, no specific user response-time benchmarks were performed as the response-time remained the same.

Scenario

A benchmark test has been performed for a portfolio of:

  • 1 000 service locations

  • 10 000 service locations

  • 100 000 service locations

The two most importand and load-intensive business processes have been tested in a benchmark.

Meter Reading Handling

  • Receiving unparsed meterreads

  • Applying content validation (transforming external to internal codes)

  • Applying context validation (do we know the meter, linking to the right channel)

  • Storing the meter read in the internal data model

  • Triggering meter consumption calculation

  • Triggering service location consumption calculation/aggregation

This process was executed both for one day of meter readings for the complete portfolio, as well as processing a backlog of one year of meter readings.

Invoice generation

  • Collecting all the tariffs, contracts and products

  • Collecting and assigning consumption to correct tariffs

  • Calculating invoice lines

  • Preparing template data objects (for visualisation + document generation)

  • Generating invoice documents

  • Converting these documents to PDFs

Results

The performance results for the meter reading handling and invoice generation process are shown in the following graphs. This demonstrates the scalability of the solution.

image.png

Did this answer your question?