1. Scalable architecture

OutSystems facilitates seamless scalability by offering both horizontal scalability and vertical scalability through flexible computing power for applications and databases. OutSystems employs load balancing to evenly distribute incoming traffic, ensuring consistent performance as applications scale.

Table of contents

Horizontal scalability

For horizontal scalability (scale-out), OutSystems makes it easy to add additional nodes to any production environment. This helps in the following scenarios:

  • High availability
  • Increased user load with more users or more frequent usage
  • Increased business logic complexity/load
  • Increased volume of batch processing
  • Increased data volume or number of transactions

Horizontal scaling with O11 is seamless. The platform automatically deploys additional front-end servers in a farm configuration and syncs the applications in the environment to the new front-end servers. All front-end servers in the farm will log to the same centralized repository for efficient monitoring and troubleshooting.

horizontal scalability 

A team can add as many front-end servers as needed for unlimited horizontal scalability. With one click, OutSystems automatically synchronizes applications to the new front-end servers.

Once front-end servers are configured, OutSystems automatically deploys all applications to each server. No user data or session information is stored locally in a single server. This allows teams to distribute any user request to any of the servers, increasing the redundancy and availability of the system. All front-end servers in the farm will log to the same centralized repository for efficient monitoring and troubleshooting in the Service Center.

Horizontal scaling with ODC is automatic. Each application is deployed to individual instances called replicas. As application load increases, additional replicas are deployed to handle the incoming requests. and each application automatically scales horizontally independently, ensuring that each application replica has its own dedicated resources.

Traditionally, when building and managing distributed systems, developers are expected to follow best practices for development and assure minimal resources are consumed to always keep those resources free. Unfortunately, in these scenarios, a small mistake such as forgetting to close a reader can take a significant performance penalty.

To prevent these, OutSystems offers automatic prevention mechanisms to ensure efficient resource usage and reduce the risk of system issues as you scale. It automatically manages the closure of readers, connections, and transactions, as well as minimizes memory usage in all requests. This automation significantly reduces the likelihood of human-induced errors that could lead to system failures that affect scalability. Moreover, OutSystems simplifies the process of building highly scalable solutions, eliminating the need for expensive distributed systems and technical expertise in performance optimization.

Vertical scalability

OutSystems Cloud scales to meet the most demanding applications. For more information on this subject, please also see High availability and scalability strategies.

Vertical scaling is when additional resources are added to an existing node or database (more powerful CPUs and/or more memory). This helps:

  • Deliver higher performance for your developers as they create and deploy apps.
  • Support significant increases in end users of your applications.
  • Enhance the processing power of the database as the number and complexity of your applications grow.

For vertical scalability (scale-up), OutSystems makes it easy to add additional database capacity to any production environment with O11. With ODC, vertical scaling of the database is on-demand, as the platform utilizes a process that automatically monitors the workload and adjusts the capacity as needed based on application demand.

ODC Resource Capacity Fair Use Limits

The following are the default resource sizes included with a valid subscription to OutSystems Developer Cloud, and apply to each stage individually (Development, Non-Production and Production). Thus, the ODC tenant, as a whole, has the same capacity across all stages:

ODC Platform Edition
Resource Description
Compute Instances

15 compute instances by default with ODC, without High Availability

30 compute instances by default with ODC, with High Availability

Total number of container instances that are available to be used for all applications, workflows, and timers in each stage

Compute Instances

+5 additional compute instances, without High Availability


+10 additional compute instances, with High Availability

The amount of extra capacity provided in each stage for each additional 150 AO pack purchased

HA is applied to the Production stage only

Database Compute

16 GB

Amount of compute resources (memory/CPU) allocated to the database shared across all apps in each stage

Database Storage

500 GB

Amount of storage allocated to the database shared across all apps in each stage

Custom Code Execution Duration

30,000 seconds/day

The amount of time in seconds that all custom code functions in each stage can execute for per day

Agent Executions

1,000 Agent
Executions / month

The total number of Agent Executions available per month

OutSystems also provides additional flexibility in scaling your stages by offering ODC Compute Add-Ons, which allow you to increase the available capacity for each Resource listed in the table above as needed. Please reach out to your account team for options and pricing.

Resource Capacity Sizes

The OutSystems O11 platform provides a wide selection of class sizes that are optimized to fit different use cases. Each class size is comprised of varying combinations of computing capacity that give you the flexibility to choose the appropriate level of capacity for your applications.

The following resource sizes are currently supported on OutSystems 11 Cloud:

O11 Cloud Front-End Servers

Class 1

2 Virtual Cores
4 GB of memory

Class 2

2 Virtual Cores
8 GB of memory

Class 3

4 Virtual Cores
8 GB of memory

Class 4

4 Virtual Cores
16 GB of memory

Class 5*

8 Virtual Cores
16 GB of memory

Class 6*

8 Virtual Cores
32 GB of memory

Class 7*

16 Virtual Cores
32 GB of memory

Class 8*

16 Virtual Cores
128 GB of memory

Class 9*

32 Virtual Cores
256 GB of memory

O11 Cloud Database Servers (SQL Server or Oracle)

Class 2

2 Virtual Cores
8 GB of memory

Class 3

4 Virtual Cores
16 GB of memory

Class 4

4 Virtual Cores
32 GB of memory

Class 5*

8 Virtual Cores
64 GB of memory

Class 6*

SQL Server:

16 Virtual Cores
128 GB of memory

Oracle:

8 Virtual Cores
256 GB of memory

Class 7*

SQL Server:

32 Virtual Cores
256 GB of memory

Oracle:

16 Virtual Cores
128 GB of memory

Class 8*

SQL Server:

96 Virtual Cores
768 GB of memory

Oracle:

N/A

* These classes always require an additional ongoing subscription fee.

Upgrades up to Class 4 databases and front-end servers are complimentary for almost all customers (those under licensing models from 2020 forward), when needed and upon request through OutSystems Support. Downgrades are performed when the same level of resources is no longer needed. In the rare instance where a database or front-end server upgrade is needed to Class 5 or above, an additional ongoing subscription fee is required.

In an on-premises installation of OutSystems, you have the flexibility to scale the computing resources as you prefer, since you procure these resources.

Load balancing

A load balancer automatically distributes incoming application traffic across multiple front-end servers to spread the request load. It also detects unhealthy front-end servers in the production environment and automatically reroutes traffic to healthy instances until health is restored, increasing the fault tolerance of all applications so that scalability isn’t affected.

OutSystems stores mobile and web user sessions in the session database, allowing multiple requests from the same user to be handled by any front-end server in a farm environment, which also supports scalability. The session database elements are configured on a dedicated database schema for consistent performance and operations. OutSystems uses the native session management services of the application server stack.