SlideShare a Scribd company logo
Multi-tenancy
A practical example
Tiago Bernardo
OutSystems Consultant @ Creetion
tiagobernardo@creetion.com
2
Agenda 1. Quick introduction to Multi-tenancy
a. What is Multi-tenant?
b. It’s all about context!
c. What are User Providers?
d. Module, Entities, Timers, Site Properties in Multi-
tenant
2. Practical example (demo)
3. Final considerations
Goal: Hopefully, at the end you will understand a little
better how multi-tenant works.
3
Is the capability of providing each Customer (Tenant) with his own isolated set of
computing resources (data, end-users), while using a single Application Server and
Database Server.
What is multi-tenant?
4
Context!
All logic and data are executed and accessed always within a certain context.
It is important that the developer understands, and controls in certain ways (for example
accessing the data of all Tenants), the Tenant context that is applied in certain parts of the
application.
It’s all about Tenant context!
5
Using the system action TenantSwitch.
"Change the context to the given tenant identifier. When switching tenant, the session is
cleared (equivalent to an implicit logout, before changing the tenant), the OnSessionStart
(Traditional) actions are executed, and the current transaction is committed."
The User_Login action from the module Users executes inside a TenantSwitch.
How to change Tenant context?
User Providers are modules that make context available for:
End-users, sessions, and tenants (if the User Provider is multi-tenant).
By default the platform has 2 User Provider modules:
1) Users
2) Service Center
A User Provider module always has a Default Tenant.
6
What are User Providers?
7
System User entity
User entity, and User Providers
User Provider,
Not multi-tenant:
ServiceCenter
Default tenant:
ServiceCenter
User Provider,
Multi-tenant:
Users
Default tenant:
Users
Tenant ONE
Tenant
TWO
User Provider,
Multi-tenant:
UsersClone
Default tenant:
UsersClone
1) Module
a) Sets the default for the other elements inside the module.
2) Entities
a) Have a visual clue to help distinguish
3) Site Properties
4) Timers
BPTs (run in the context of a Tenant)
8
Elements for Multi-Tenancy
A practical example
Customer Management
10
1) Security:
a) Avoid expose the Tenant_Id, only when necessary, and isolate the usage.
b) Also control the use of TenantSwitch.
2) Monitor performance with the increase of Tenants (Timers and BPT have limited
threads to run)
3) Monitor database usage.
4) Try to avoid logic that depends on the Tenant. Makes code more complex and
difficult to maintain.
5) Anonymous screens for generation of PDFs need to controlled.
6) Etc.
Final considerations
Q&A
Thank you! Hope it was interesting.
Now for Q&A.
12
End

More Related Content

What's hot

Real Life Clean Architecture
Real Life Clean ArchitectureReal Life Clean Architecture
Real Life Clean Architecture
Mattia Battiston
 
How Sentry can help us with bugs
How Sentry can help us with bugsHow Sentry can help us with bugs
How Sentry can help us with bugs
Erison Silva
 
GOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs Istio
GOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs IstioGOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs Istio
GOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs Istio
Nicolas Fränkel
 
Autoscaling on Kubernetes
Autoscaling on KubernetesAutoscaling on Kubernetes
Autoscaling on Kubernetes
James Sturtevant
 
중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직
Hoyoung Choi
 
ProxySQL High Availability (Clustering)
ProxySQL High Availability (Clustering)ProxySQL High Availability (Clustering)
ProxySQL High Availability (Clustering)
Mydbops
 
Building CRUD Wrappers
Building CRUD WrappersBuilding CRUD Wrappers
Building CRUD Wrappers
OutSystems
 
Penetration Testing Azure for Ethical Hackers
Penetration Testing Azure for Ethical HackersPenetration Testing Azure for Ethical Hackers
Penetration Testing Azure for Ethical Hackers
Cheah Eng Soon
 
Event Storming and Saga
Event Storming and SagaEvent Storming and Saga
Event Storming and Saga
Araf Karsh Hamid
 
OutSystems Webinar - Building a Live Style Guide
OutSystems Webinar - Building a Live Style GuideOutSystems Webinar - Building a Live Style Guide
OutSystems Webinar - Building a Live Style Guide
Daniel Reis
 
HA Deployment Architecture with HAProxy and Keepalived
HA Deployment Architecture with HAProxy and KeepalivedHA Deployment Architecture with HAProxy and Keepalived
HA Deployment Architecture with HAProxy and Keepalived
Ganapathi Kandaswamy
 
오픈 소스 도구를 활용한 성능 테스트 방법 및 사례
오픈 소스 도구를 활용한 성능 테스트 방법 및 사례오픈 소스 도구를 활용한 성능 테스트 방법 및 사례
오픈 소스 도구를 활용한 성능 테스트 방법 및 사례
MinWoo Byeon
 
Neutron-to-Neutron: interconnecting multiple OpenStack deployments
Neutron-to-Neutron: interconnecting multiple OpenStack deploymentsNeutron-to-Neutron: interconnecting multiple OpenStack deployments
Neutron-to-Neutron: interconnecting multiple OpenStack deployments
Thomas Morin
 
Docker Introduction.pdf
Docker Introduction.pdfDocker Introduction.pdf
Docker Introduction.pdf
OKLABS
 
[WhaTap DevOps Day] 세션 6 : 와탭랩스 DevOps 이야기
[WhaTap DevOps Day] 세션 6 : 와탭랩스 DevOps 이야기[WhaTap DevOps Day] 세션 6 : 와탭랩스 DevOps 이야기
[WhaTap DevOps Day] 세션 6 : 와탭랩스 DevOps 이야기
WhaTap Labs
 
Kvm and libvirt
Kvm and libvirtKvm and libvirt
Kvm and libvirt
plarsen67
 
Kubernetes
KubernetesKubernetes
Kubernetes
Meng-Ze Lee
 
Stateful set in kubernetes implementation & usecases
Stateful set in kubernetes implementation & usecases Stateful set in kubernetes implementation & usecases
Stateful set in kubernetes implementation & usecases
Krishna-Kumar
 
Velero & Beyond: Backup & Restore for Kubernetes Applications (Cloud Native S...
Velero & Beyond: Backup & Restore for Kubernetes Applications (Cloud Native S...Velero & Beyond: Backup & Restore for Kubernetes Applications (Cloud Native S...
Velero & Beyond: Backup & Restore for Kubernetes Applications (Cloud Native S...
Chakradhar Rao Jonagam
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
Raffaele Di Fazio
 

What's hot (20)

Real Life Clean Architecture
Real Life Clean ArchitectureReal Life Clean Architecture
Real Life Clean Architecture
 
How Sentry can help us with bugs
How Sentry can help us with bugsHow Sentry can help us with bugs
How Sentry can help us with bugs
 
GOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs Istio
GOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs IstioGOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs Istio
GOTO Berlin - Battle of the Circuit Breakers: Resilience4J vs Istio
 
Autoscaling on Kubernetes
Autoscaling on KubernetesAutoscaling on Kubernetes
Autoscaling on Kubernetes
 
중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직
 
ProxySQL High Availability (Clustering)
ProxySQL High Availability (Clustering)ProxySQL High Availability (Clustering)
ProxySQL High Availability (Clustering)
 
Building CRUD Wrappers
Building CRUD WrappersBuilding CRUD Wrappers
Building CRUD Wrappers
 
Penetration Testing Azure for Ethical Hackers
Penetration Testing Azure for Ethical HackersPenetration Testing Azure for Ethical Hackers
Penetration Testing Azure for Ethical Hackers
 
Event Storming and Saga
Event Storming and SagaEvent Storming and Saga
Event Storming and Saga
 
OutSystems Webinar - Building a Live Style Guide
OutSystems Webinar - Building a Live Style GuideOutSystems Webinar - Building a Live Style Guide
OutSystems Webinar - Building a Live Style Guide
 
HA Deployment Architecture with HAProxy and Keepalived
HA Deployment Architecture with HAProxy and KeepalivedHA Deployment Architecture with HAProxy and Keepalived
HA Deployment Architecture with HAProxy and Keepalived
 
오픈 소스 도구를 활용한 성능 테스트 방법 및 사례
오픈 소스 도구를 활용한 성능 테스트 방법 및 사례오픈 소스 도구를 활용한 성능 테스트 방법 및 사례
오픈 소스 도구를 활용한 성능 테스트 방법 및 사례
 
Neutron-to-Neutron: interconnecting multiple OpenStack deployments
Neutron-to-Neutron: interconnecting multiple OpenStack deploymentsNeutron-to-Neutron: interconnecting multiple OpenStack deployments
Neutron-to-Neutron: interconnecting multiple OpenStack deployments
 
Docker Introduction.pdf
Docker Introduction.pdfDocker Introduction.pdf
Docker Introduction.pdf
 
[WhaTap DevOps Day] 세션 6 : 와탭랩스 DevOps 이야기
[WhaTap DevOps Day] 세션 6 : 와탭랩스 DevOps 이야기[WhaTap DevOps Day] 세션 6 : 와탭랩스 DevOps 이야기
[WhaTap DevOps Day] 세션 6 : 와탭랩스 DevOps 이야기
 
Kvm and libvirt
Kvm and libvirtKvm and libvirt
Kvm and libvirt
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Stateful set in kubernetes implementation & usecases
Stateful set in kubernetes implementation & usecases Stateful set in kubernetes implementation & usecases
Stateful set in kubernetes implementation & usecases
 
Velero & Beyond: Backup & Restore for Kubernetes Applications (Cloud Native S...
Velero & Beyond: Backup & Restore for Kubernetes Applications (Cloud Native S...Velero & Beyond: Backup & Restore for Kubernetes Applications (Cloud Native S...
Velero & Beyond: Backup & Restore for Kubernetes Applications (Cloud Native S...
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 

Similar to Multi tenancy - a practical approach

Introduction to Microservices Patterns
Introduction to Microservices PatternsIntroduction to Microservices Patterns
Introduction to Microservices Patterns
arconsis
 
Introduction to Microservices Patterns
Introduction to Microservices PatternsIntroduction to Microservices Patterns
Introduction to Microservices Patterns
Dimosthenis Botsaris
 
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Ahmed Misbah
 
Enovia Collaboration Platform and Matrix Query Language
Enovia Collaboration Platform and Matrix Query LanguageEnovia Collaboration Platform and Matrix Query Language
Enovia Collaboration Platform and Matrix Query Language
Ashikur Rahman
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
Faren faren
 
Srs
SrsSrs
FIWARE Global Summit - OpenMTC – An Open Source Implementation of the oneM2M ...
FIWARE Global Summit - OpenMTC – An Open Source Implementation of the oneM2M ...FIWARE Global Summit - OpenMTC – An Open Source Implementation of the oneM2M ...
FIWARE Global Summit - OpenMTC – An Open Source Implementation of the oneM2M ...
FIWARE
 
Android101
Android101Android101
Android101
David Marques
 
FIWARE Global Summit - OpenMTC - A Open Source Implementation of the oneM2M S...
FIWARE Global Summit - OpenMTC - A Open Source Implementation of the oneM2M S...FIWARE Global Summit - OpenMTC - A Open Source Implementation of the oneM2M S...
FIWARE Global Summit - OpenMTC - A Open Source Implementation of the oneM2M S...
FIWARE
 
IRJET - A Comprehensive Review on Security Issues and Challenges in Lightweig...
IRJET - A Comprehensive Review on Security Issues and Challenges in Lightweig...IRJET - A Comprehensive Review on Security Issues and Challenges in Lightweig...
IRJET - A Comprehensive Review on Security Issues and Challenges in Lightweig...
IRJET Journal
 
Microservices vs monolithics betabeers
Microservices vs monolithics   betabeersMicroservices vs monolithics   betabeers
Microservices vs monolithics betabeers
Jesús Mª Villar Vazquez
 
Building a microservice architecture for a 100mio# revenue company
Building a microservice architecture for a 100mio# revenue companyBuilding a microservice architecture for a 100mio# revenue company
Building a microservice architecture for a 100mio# revenue company
ProjectAcom
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
Owain Lewis
 
Computing Environments.pptx
Computing Environments.pptxComputing Environments.pptx
Computing Environments.pptx
MSivani
 
ICINGA (Monitoring Basics & Reporting)
ICINGA (Monitoring Basics & Reporting) ICINGA (Monitoring Basics & Reporting)
ICINGA (Monitoring Basics & Reporting)
Mohammad Awais Javaid
 
Use CasesDeborah E. Swain, Ph.D.EXAMPLENameProvis.docx
Use CasesDeborah E. Swain, Ph.D.EXAMPLENameProvis.docxUse CasesDeborah E. Swain, Ph.D.EXAMPLENameProvis.docx
Use CasesDeborah E. Swain, Ph.D.EXAMPLENameProvis.docx
dickonsondorris
 
Multi-tenancy with Rails
Multi-tenancy with RailsMulti-tenancy with Rails
Multi-tenancy with Rails
Paul Gallagher
 
Microservices
MicroservicesMicroservices
Microservices
Ramesh (@Mavuluri)
 
Explained: Domain events
Explained: Domain eventsExplained: Domain events
Explained: Domain events
João Pires
 
High throughput data streaming in Azure
High throughput data streaming in AzureHigh throughput data streaming in Azure
High throughput data streaming in Azure
Alexander Laysha
 

Similar to Multi tenancy - a practical approach (20)

Introduction to Microservices Patterns
Introduction to Microservices PatternsIntroduction to Microservices Patterns
Introduction to Microservices Patterns
 
Introduction to Microservices Patterns
Introduction to Microservices PatternsIntroduction to Microservices Patterns
Introduction to Microservices Patterns
 
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
 
Enovia Collaboration Platform and Matrix Query Language
Enovia Collaboration Platform and Matrix Query LanguageEnovia Collaboration Platform and Matrix Query Language
Enovia Collaboration Platform and Matrix Query Language
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Srs
SrsSrs
Srs
 
FIWARE Global Summit - OpenMTC – An Open Source Implementation of the oneM2M ...
FIWARE Global Summit - OpenMTC – An Open Source Implementation of the oneM2M ...FIWARE Global Summit - OpenMTC – An Open Source Implementation of the oneM2M ...
FIWARE Global Summit - OpenMTC – An Open Source Implementation of the oneM2M ...
 
Android101
Android101Android101
Android101
 
FIWARE Global Summit - OpenMTC - A Open Source Implementation of the oneM2M S...
FIWARE Global Summit - OpenMTC - A Open Source Implementation of the oneM2M S...FIWARE Global Summit - OpenMTC - A Open Source Implementation of the oneM2M S...
FIWARE Global Summit - OpenMTC - A Open Source Implementation of the oneM2M S...
 
IRJET - A Comprehensive Review on Security Issues and Challenges in Lightweig...
IRJET - A Comprehensive Review on Security Issues and Challenges in Lightweig...IRJET - A Comprehensive Review on Security Issues and Challenges in Lightweig...
IRJET - A Comprehensive Review on Security Issues and Challenges in Lightweig...
 
Microservices vs monolithics betabeers
Microservices vs monolithics   betabeersMicroservices vs monolithics   betabeers
Microservices vs monolithics betabeers
 
Building a microservice architecture for a 100mio# revenue company
Building a microservice architecture for a 100mio# revenue companyBuilding a microservice architecture for a 100mio# revenue company
Building a microservice architecture for a 100mio# revenue company
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
Computing Environments.pptx
Computing Environments.pptxComputing Environments.pptx
Computing Environments.pptx
 
ICINGA (Monitoring Basics & Reporting)
ICINGA (Monitoring Basics & Reporting) ICINGA (Monitoring Basics & Reporting)
ICINGA (Monitoring Basics & Reporting)
 
Use CasesDeborah E. Swain, Ph.D.EXAMPLENameProvis.docx
Use CasesDeborah E. Swain, Ph.D.EXAMPLENameProvis.docxUse CasesDeborah E. Swain, Ph.D.EXAMPLENameProvis.docx
Use CasesDeborah E. Swain, Ph.D.EXAMPLENameProvis.docx
 
Multi-tenancy with Rails
Multi-tenancy with RailsMulti-tenancy with Rails
Multi-tenancy with Rails
 
Microservices
MicroservicesMicroservices
Microservices
 
Explained: Domain events
Explained: Domain eventsExplained: Domain events
Explained: Domain events
 
High throughput data streaming in Azure
High throughput data streaming in AzureHigh throughput data streaming in Azure
High throughput data streaming in Azure
 

More from CatarinaPereira64715

ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
Master Detail Data - Sebastian Krempel.pdf
Master Detail Data - Sebastian Krempel.pdfMaster Detail Data - Sebastian Krempel.pdf
Master Detail Data - Sebastian Krempel.pdf
CatarinaPereira64715
 
Push notifications using Firebase
Push notifications using FirebasePush notifications using Firebase
Push notifications using Firebase
CatarinaPereira64715
 
Push notifications using Firebase
Push notifications using FirebasePush notifications using Firebase
Push notifications using Firebase
CatarinaPereira64715
 
How to Model Your Data Like a Pro!
How to Model Your Data Like a Pro!How to Model Your Data Like a Pro!
How to Model Your Data Like a Pro!
CatarinaPereira64715
 
Caching Data in OutSystems: A Tale of Gains Without Pain
Caching Data in OutSystems: A Tale of Gains Without PainCaching Data in OutSystems: A Tale of Gains Without Pain
Caching Data in OutSystems: A Tale of Gains Without Pain
CatarinaPereira64715
 
Netherlands OSUG | Sep 30
Netherlands OSUG | Sep 30Netherlands OSUG | Sep 30
Netherlands OSUG | Sep 30
CatarinaPereira64715
 

More from CatarinaPereira64715 (7)

ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Master Detail Data - Sebastian Krempel.pdf
Master Detail Data - Sebastian Krempel.pdfMaster Detail Data - Sebastian Krempel.pdf
Master Detail Data - Sebastian Krempel.pdf
 
Push notifications using Firebase
Push notifications using FirebasePush notifications using Firebase
Push notifications using Firebase
 
Push notifications using Firebase
Push notifications using FirebasePush notifications using Firebase
Push notifications using Firebase
 
How to Model Your Data Like a Pro!
How to Model Your Data Like a Pro!How to Model Your Data Like a Pro!
How to Model Your Data Like a Pro!
 
Caching Data in OutSystems: A Tale of Gains Without Pain
Caching Data in OutSystems: A Tale of Gains Without PainCaching Data in OutSystems: A Tale of Gains Without Pain
Caching Data in OutSystems: A Tale of Gains Without Pain
 
Netherlands OSUG | Sep 30
Netherlands OSUG | Sep 30Netherlands OSUG | Sep 30
Netherlands OSUG | Sep 30
 

Recently uploaded

14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
Reetu63
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
kalichargn70th171
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Peter Caitens
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
Kubernetes at Scale: Going Multi-Cluster with Istio
Kubernetes at Scale:  Going Multi-Cluster  with IstioKubernetes at Scale:  Going Multi-Cluster  with Istio
Kubernetes at Scale: Going Multi-Cluster with Istio
Severalnines
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLESINTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
anfaltahir1010
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 

Recently uploaded (20)

14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
Kubernetes at Scale: Going Multi-Cluster with Istio
Kubernetes at Scale:  Going Multi-Cluster  with IstioKubernetes at Scale:  Going Multi-Cluster  with Istio
Kubernetes at Scale: Going Multi-Cluster with Istio
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLESINTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 

Multi tenancy - a practical approach

  • 1. Multi-tenancy A practical example Tiago Bernardo OutSystems Consultant @ Creetion tiagobernardo@creetion.com
  • 2. 2 Agenda 1. Quick introduction to Multi-tenancy a. What is Multi-tenant? b. It’s all about context! c. What are User Providers? d. Module, Entities, Timers, Site Properties in Multi- tenant 2. Practical example (demo) 3. Final considerations Goal: Hopefully, at the end you will understand a little better how multi-tenant works.
  • 3. 3 Is the capability of providing each Customer (Tenant) with his own isolated set of computing resources (data, end-users), while using a single Application Server and Database Server. What is multi-tenant?
  • 4. 4 Context! All logic and data are executed and accessed always within a certain context. It is important that the developer understands, and controls in certain ways (for example accessing the data of all Tenants), the Tenant context that is applied in certain parts of the application. It’s all about Tenant context!
  • 5. 5 Using the system action TenantSwitch. "Change the context to the given tenant identifier. When switching tenant, the session is cleared (equivalent to an implicit logout, before changing the tenant), the OnSessionStart (Traditional) actions are executed, and the current transaction is committed." The User_Login action from the module Users executes inside a TenantSwitch. How to change Tenant context?
  • 6. User Providers are modules that make context available for: End-users, sessions, and tenants (if the User Provider is multi-tenant). By default the platform has 2 User Provider modules: 1) Users 2) Service Center A User Provider module always has a Default Tenant. 6 What are User Providers?
  • 7. 7 System User entity User entity, and User Providers User Provider, Not multi-tenant: ServiceCenter Default tenant: ServiceCenter User Provider, Multi-tenant: Users Default tenant: Users Tenant ONE Tenant TWO User Provider, Multi-tenant: UsersClone Default tenant: UsersClone
  • 8. 1) Module a) Sets the default for the other elements inside the module. 2) Entities a) Have a visual clue to help distinguish 3) Site Properties 4) Timers BPTs (run in the context of a Tenant) 8 Elements for Multi-Tenancy
  • 10. 10 1) Security: a) Avoid expose the Tenant_Id, only when necessary, and isolate the usage. b) Also control the use of TenantSwitch. 2) Monitor performance with the increase of Tenants (Timers and BPT have limited threads to run) 3) Monitor database usage. 4) Try to avoid logic that depends on the Tenant. Makes code more complex and difficult to maintain. 5) Anonymous screens for generation of PDFs need to controlled. 6) Etc. Final considerations
  • 11. Q&A Thank you! Hope it was interesting. Now for Q&A.