12/14/2021, 1:13 PM
Hey friends 👋🏻 Been thinking about how spicedb could support the safe rollout of schema changes, wanted to hear your thoughts. In an ideal world, we can support our engineering team to follow the same patterns we do today, such as progressive rollouts, and being able to rollback product changes, with a focus on minimizing customer impact. Have y'all considered how this can be achieved? Some of the options that come to mind: - **Schema versioning**: a client can "Write" a new version of the schema. Clients need to indicate the version to use when they talk to SpiceDB. SpiceDB is capable of marking all state kept on run-time in association with a specific Schema version (e.g. caches for version 1 are not considered for version 2). Client's can eventually cut-over to a specific version. - **Blue/Green SpiceDB deployments**: a new deployment of SpiceDB is provisioned, configured with the same database, but configured to use a different version of the schema. Clients switch between versions using the corresponding DNS.