To close out 2024 SpiceDB development, we are releasing SpiceDB v1.39.
In this release we introduce:
- 📊 Native histograms for gRPC server metrics
- 🏥 Smarter health checks with user-specified set of safe migrations
- 🗃️ Improvements for transaction metadata
Foundation for future features:
- ⌛ Expiring relationships: native support for defining relations in schema that last for set amount of time
- 🎼 Composable schemas: initial steps to support multi-part SpiceDB schema
Notable change:
- 🧹 Remove LookupResources v1 implementation (LookupResources v2 was made the default in SpiceDB v1.37)
Refer to the full release notes for detailed info. Let’s explore the highlights of this release.
Native Histograms for gRPC Server Metrics
SpiceDB has been cloud native operable since its beginnings. By enabling native histograms for gRPC server metrics, it’s easier for SpiceDB users to monitor the health of their permissions systems and collect actionable and meaningful metrics more efficiently.
Native histograms are an experimental feature first released in Prometheus v2.40. They enable higher bucket resolution across arbitrary value ranges while reducing storage and query costs, making even label-based histogram partitioning more practical and cost-effective. Histograms are treated as first-class data citizens rather than breaking them down into float components (as the classic version did). This innovation brings several key advantages, including sparse bucket representation for efficient handling of empty buckets, full float64 range coverage, elimination of bucket boundary configuration during instrumentation, dynamic resolution based on simple parameters, sophisticated exponential bucketing schemas that ensure mergeability, and efficient data representation for both exposition and storage. Head over to the Prometheus page to learn more.
Source: Grafana Blog
Smarter Health Checks
Smarter health checks ensure SpiceDB users can specify datastore versions that are considered “safe” so that SpiceDB health checks pass in environments running multiple versions of SpiceDB or datastores.
For example, consider deployments that run new migrations in a test environment while continuing to run an “old” instance of SpiceDB in production. Because a new migration has occurred, the SpiceDB health check might fail and cause a service interruption in prod if that “old” instance needs to restart. With smarter healthchecks, an engineer can specify the “old” version of SpiceDB to be “safe” and therefore avoid any service interruption due to an erroneously failed healthcheck.
One thing to note, most SpiceDB migrations are backwards compatible by at least one version, so the existing healthcheck is extremely strict by default out of an abundance of caution.
Future Features
This release also contains foundational work for 2 future features. As an open source project, SpiceDB development is conducted in the open and we use proposals to collect feedback and foster discussion about features. Read through to get the context for the 2 upcoming features:
Expiring relationships: GC of relationships expired via caveats
Composable schemas: Support for composed schemas and multi-test validation of schemas
Happy Holidays!
While this is just a high-level overview of some of the newest features in the latest release, we hope you enjoy SpiceDB v1.39. If you are new to the project, have time over the holidays, and want to get up to speed on all things SpiceDB, check out the SpiceDB playlist and Google Zanzibar Basics playlist on our YouTube channel.
Stay up to date on everything AuthZed by signing up for our newsletter and following us on BlueSky and LinkedIn.