Architecture: single Zitadel instance vs multiple virtual instances for the Catholic OS umbrella #98
JohnRDOrazio
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
As we prepare to deploy production Zitadel (and OpenFGA) at
auth.catholicdigitalcommons.org/authz.catholicdigitalcommons.orgserving cdcf-website, LiturgicalCalendarAPI, BibleGet API, and OntoKit, there are two reasonable architectures. Posting the tradeoffs here for input before we commit.Option A — Single Zitadel instance, one Project (or Org) per property
One Zitadel runtime at
auth.catholicdigitalcommons.org. Each property is either a separate Zitadel Project under one sharedCatholicOSOrg, or a separate Zitadel Org with its own Project(s).Pros
projectRoleChecktoggle. A user with no grant for Project B doesn't gain access just by holding a session.Cons
Option B — Multiple virtual instances (one per property)
Each property runs as its own Zitadel virtual instance, accessed via its own hostname (e.g.
auth.cdcf.org,auth.liturgicalcalendar.org,auth.bibleget.io,auth.ontokit.org). All instances live inside one Zitadel deployment but are fully isolated tenants — separate users, orgs, masterkeys, branding, settings. Managed through Zitadel's System API.Pros
Cons
Where we're leaning
Single instance with one Zitadel Org per property (Option A's per-Org variant). Per-property admin isolation without the operational cost of separate runtimes. But genuinely open to input — particularly from anyone who's run multi-instance Zitadel in anger, or who has a use case that benefits from hard tenant isolation.
Comments welcome on
Implementation plan (working draft) lives in
cdcf-infra— once that repo is created, look there for the actual compose file, secrets handling, and Phase 1 wiring details (LitCal first).Beta Was this translation helpful? Give feedback.
All reactions