Is it possible to build a multi-tenant application with OutSystems?
Table of contents
Yes. It is possible to build a multi-tenant application with OutSystems. Modern enterprise applications and Software-as-a-Service (SaaS) applications must reach out to multiple customers and multi-tenancy enables enterprises to house customer applications in a single place while isolating their data from one another. So, OutSystems makes it simple to develop a multi-tenant application, and our customers are benefiting.
Developing a multi-tenant architecture with OutSystems
The key to developing a multi-tenant architecture is effective data isolation.
To create a multi-tenant application with OutSystems, every eSpace of the application has to be marked as multi-tenant. This is done by simply setting the "Is Multi-tenant" property of the eSpace to "Yes." This isolates data, end-users, sessions and processes per tenant and alerts other developers to the fact that the eSpace is multi-tenant ready.
Since an end-user uniquely belongs to a tenant, OutSystems infers which tenant from the username, during the login process. Then, the end-user is bound to the tenant and all simple and advanced queries are automatically filtered to only return data from that tenant.
For more detailed information about mutli-tenant application development, read this OutSystems tech note, "How to Build Multi-tenant applications".
Multi-tenancy enables a single application server and database server to provide each customer with their own isolated set of computing resources. To customers, it appears that they have their own application, when in fact they are using the same app as others but with some customization.
In this example, a single application is serving two client organizations (tenants) that are using it. Each client organization has its contacts and opportunities isolated in its tenant.
Designing applications using a multi-tenant architecture has several benefits:
- Decreases infrastructure operation costs because there is only one application deployed in the server
- Enforces a strict security policy for data, end-users, sessions and processes
- Simplifies application development and maintenance processes because there is only a single code base to maintain
An example of one of the OutSystems customers that has developed applications to serve different types of end users, with specific data available in distinct tenants, is Lapis Software Associates, which is based in the US.
Using OutSystems, Lapis developed SaaS that provides automation and productivity tools for lottery field representatives and a retail web-portal for direct access by all retailers and corporate users. It is a complete suite of web and mobile applications to help lotteries improve services to retailers with multi-tenancy capabilities.