Domain separation is a way to separate data, processes, and administrative tasks into logically defined domains. It is best suited for Managed Service Providers (MSPs) or for companies that have a global presence with unique and varying business requirements for different parts of the world.
In the next few sections, we will explain some best practices for admins to consider when supporting domain separation.
1. For performance considerations:
-- Limit the number of domains, a large number of domains can cause a severe performance impact.
-- Limit domain containership and User/Group Visibility, this creates slow database queries
-- Use Domain Reference Picker, this will help not loading the domains all at once and will give better performance on login.
2. Implement changes to the existing Domain Hierarchy (update/delete or add domain) only when absolutely needed it's its needed perform it during off business hours for lesser impact.
3. Always check domain logs 'syslog_domain' for any errors or warnings.
4. Always have one Default domain set in domain table. When system couldn't find the domain it automatically assigns domain to Default domain. If default domain is not available records will be created in the Global domain which is not recommended as everyone can see records in the Global domain.
5. Admins havethe ability to perform debugging onthe instance. For any unexpected behavior experienced by users, enable SQL debugging and look for queries system is performing to understand the issue.
6. Script should not be dependant on sys_domain_path, as domain path can be recalculated if domain hierarchy is changed.
Please see this blog on the community for the more detailed explanation on best practices: 8 Best Practices for Supporting Domain Separation