What’s your primary requirement?
I need to safely develop and test model changes before they affect production users
I need to safely develop and test model changes before they affect production users
I need separate development/staging and production databases and need to validate changes against non-production data
I need separate development/staging and production databases and need to validate changes against non-production data
- You have
analytics_prodandanalytics_devdatabases - All developers are allowed to see both databases
- You don’t need true environment isolation between developers and production users
I have strict separation requirements between development/staging and production environments within a single region
I have strict separation requirements between development/staging and production environments within a single region
- Organizational policy prohibits developers from having production access
- You need a stable, read-only production environment
- You want to preview full model and content state in a production context before going live
I have strict separation requirements for development, staging and production environments and/or handling environments across multiple geographic regions
I have strict separation requirements for development, staging and production environments and/or handling environments across multiple geographic regions
- Regulations require data to reside in specific geographic regions
- You need DEV, STAGE, and PROD isolation across US, EU, and other regions simultaneously
- Your team has the operational capacity to manage nine (or more) Omni instances
How much review does your content need?
Minimal review (Agile teams)
Minimal review (Agile teams)
High review (Waterfall teams)
High review (Waterfall teams)
Mixed review — some content 'can't break' (Agile and Waterfall teams)
Mixed review — some content 'can't break' (Agile and Waterfall teams)
High review — production environment is read-only (Waterfall teams)
High review — production environment is read-only (Waterfall teams)
How do you manage database schema changes?
Additive changes on a single connection
Additive changes on a single connection
Schema changes with git branch protection enabled
Schema changes with git branch protection enabled
Changes from a staging database
Changes from a staging database
High-frequency programmatic schema updates
High-frequency programmatic schema updates
How should you scope data access across your team?
How do you structure both internal and embedded (external) users?
The right answer depends on whether internal and external users share the same data or need complete isolation:- Shared data, different access rules: A single instance with user attributes and row-level security handles this well. Use model extensions if external customers need customized views.
- Separate databases per customer: Dynamic connection environments plus model extensions is the standard embedded pattern.
- Full isolation between internal and external: Consider separate Omni instances for internal and embedded deployments, using git follower to keep models in-sync.

