Scalability and Performance of GeneXus Applications

Official Content
This documentation is valid for:

This set of articles guides you through the most important concepts related to the performance and scalability of applications, and what considerations you need to account when you are developing, deploying, monitoring or troubleshooting them.

Performance vs Scalability

Performance is an indication of the responsiveness of a system to execute any action within a given time interval, while scalability is the ability of a system either to handle increases in load without impact on performance or for the available resources to be readily increased. source: https://docs.microsoft.com/en-us/azure/architecture/patterns/category/performance-scalability

So to handle those variations in workload approaches like horizontal or vertical scaling are used. 

Horizontal vs Vertical Scaling

Horizontal scaling means that you scale by adding more machines into your pool of resources whereas Vertical scaling means that you scale by adding more power (CPU, RAM) to an existing machine. 

Horizontal scaling helps also to get high availability of your application

Autoscaling

Autoscaling, also spelled auto scaling or auto-scaling, and sometimes also called automatic scaling, is a method used in cloud computing, whereby the amount of computational resources in a server farm vary automatically based on the load on the farm. source: https://en.wikipedia.org/wiki/Autoscaling

All these approaches to scaling are used in GeneXus applications. When horizontally scaling web applications or services, a load balancer is commonly used to balance the requests to the machines of a cluster or farm.

GeneXus supports these sophisticated architectures and scaling methods to combine different solutions depending on the application needs. Anyway, special considerations need to be taken into account in the whole lifecycle of an application so that it can perform and scale as needed.