diff --git a/app/authzed/guides/picking-a-product/page.mdx b/app/authzed/guides/picking-a-product/page.mdx
index e9e5bd6b..70bbb845 100644
--- a/app/authzed/guides/picking-a-product/page.mdx
+++ b/app/authzed/guides/picking-a-product/page.mdx
@@ -13,28 +13,32 @@ This document is designed to give a high-level overview of the features supporte
## Feature Matrix
-| Feature | [Open Source] | [Cloud] | [Dedicated] | [Enterprise] |
-| ---------------------------- | :-----------: | :-----: | :---------: | :----------: |
-| Self-Hosted | | | | |
-| No-commit pricing | | | | |
-| [Materialize (Early Access)] | | | | |
-| [Management Dashboard] | | | | |
-| [Private Networking] | DIY | | | DIY |
-| [Workload Isolation] | DIY | | | DIY |
-| [Automated Updates] | DIY | | | DIY |
-| [SOC2 Compliance] | DIY | | | DIY |
-| [Audit Logging] | | | | |
-| [Rate Limiting] | | | | |
-| [Multi-Region Deployments] | DIY | | | DIY |
-| [Security Embargo] | | | | |
-| [Restricted API Access] | DIY | | | |
-| [Expedited Support] | | | | |
+| Feature | [Open Source] | [Cloud] | [Dedicated] | [Enterprise] |
+| -------------------------------- | :-----------: | :-----: | :---------: | :----------: |
+| Self-Hosted | | | | |
+| No-commit pricing | | | | |
+| **[Materialize]** | | | | |
+| ↳ [Accelerated Queries] | | | | |
+| ↳ [Event Streams (Early Access)] | | | | |
+| [Management Dashboard] | | | | |
+| [Private Networking] | DIY | | | DIY |
+| [Workload Isolation] | DIY | | | DIY |
+| [Automated Updates] | DIY | | | DIY |
+| [SOC2 Compliance] | DIY | | | DIY |
+| [Audit Logging] | | | | |
+| [Rate Limiting] | | | | |
+| [Multi-Region Deployments] | DIY | | | DIY |
+| [Security Embargo] | | | | |
+| [Restricted API Access] | DIY | | | |
+| [Expedited Support] | | | | |
[Cloud]: #cloud
[Dedicated]: #dedicated
[Enterprise]: #enterprise
[Open Source]: #open-source
-[Materialize (Early Access)]: /materialize/getting-started/overview
+[Materialize]: /materialize/getting-started/overview
+[Accelerated Queries]: /materialize/getting-started/overview#accelerated-queries
+[Event Streams (Early Access)]: /materialize/getting-started/overview#event-streams
[Audit Logging]: ../concepts/audit-logging
[Automated Updates]: ../concepts/update-channels
[Management Dashboard]: ../concepts/management-dashboard
diff --git a/app/materialize/getting-started/overview/page.mdx b/app/materialize/getting-started/overview/page.mdx
index de97d7d8..993dcaa7 100644
--- a/app/materialize/getting-started/overview/page.mdx
+++ b/app/materialize/getting-started/overview/page.mdx
@@ -12,7 +12,7 @@ AuthZed Materialize takes inspiration from the Leopard index component described
Much like the concept of a materialized view in relational databases, AuthZed Materialize is a service that you configure with a list of permissions that you want it to precompute, and it will calculate how those permissions change after relationships
are written (specifically, when those relationships affect a subject's membership in a permission set or a set's permission on a specific resource), or when a new schema is written.
-Materialize puts that precomputed data to work in two ways: **Accelerated Queries** and **Event Streams**, both currently in early access. Every other piece of Materialize content belongs to one of these two features. Look for badges at the top of the page, which link back to the feature it belongs to.
+Materialize puts that precomputed data to work in two ways: **Accelerated Queries**, generally available to AuthZed [Dedicated] users, and **Event Streams**, currently in early access. Every other piece of Materialize content belongs to one of these two features. Look for badges at the top of the page, which link back to the feature it belongs to.
- Accelerated Queries is available to users of AuthZed [Dedicated] as part of an early access
- program. Don't hesitate to get in touch with your AuthZed account team if you would like to
- participate.
+ Accelerated Queries is generally available to users of AuthZed [Dedicated]. Get in touch with your
+ AuthZed account team to get started.
Accelerated Queries use Materialize's precomputed permissions cache to answer the SpiceDB queries your application already makes, without changing how you call SpiceDB:
diff --git a/app/spicedb/getting-started/faq/page.mdx b/app/spicedb/getting-started/faq/page.mdx
index 48d1df2e..779ed039 100644
--- a/app/spicedb/getting-started/faq/page.mdx
+++ b/app/spicedb/getting-started/faq/page.mdx
@@ -59,9 +59,9 @@ There are three approaches for filtering resources based on whether users have a
2. **CheckBulkPermissions** - Use when accessible resources are too large for LookupResources. Fetch a page of candidate results from your database, then call `CheckBulkPermissions` to determine which ones the user can access. Keep iterating until you have a full page of permitted results. This works well with cursor-based pagination and search interfaces.
-3. **Materialize** (Early Access) - For maximum scalability with large datasets or high traffic. Materialize watches permission changes in SpiceDB and maintains a local denormalized view of user permissions, allowing you to use simple database JOINs for filtering.
+3. **Materialize's Event Streams** (Early Access) - For maximum scalability with large datasets or high traffic. Materialize watches permission changes in SpiceDB and maintains a local denormalized view of user permissions, allowing you to use simple database JOINs for filtering.
-Choose based on your scale: start with LookupResources, move to CheckBulkPermissions when needed, and consider Materialize for the highest performance requirements. [Learn more]
+Choose based on your scale: start with LookupResources, move to CheckBulkPermissions when needed, and consider Materialize's Event Streams for the highest performance requirements. [Learn more]
[Learn more]: ../modeling/protecting-a-list-endpoint
diff --git a/app/spicedb/modeling/protecting-a-list-endpoint/page.mdx b/app/spicedb/modeling/protecting-a-list-endpoint/page.mdx
index 5cbb8461..f934d60e 100644
--- a/app/spicedb/modeling/protecting-a-list-endpoint/page.mdx
+++ b/app/spicedb/modeling/protecting-a-list-endpoint/page.mdx
@@ -93,8 +93,9 @@ to the point where checking them via bulk check is relatively easy.
## Using Materialize
- Materialize is currently in Early Access. Additional documentation and product information will be
- coming soon. In the meantime, if you're interested, [schedule a call!][Schedule Call]
+ This pattern uses Materialize's Event Streams feature, currently in early access for AuthZed
+ Dedicated users. See the [Materialize overview] to learn more, or [schedule a call!][Schedule
+ Call]
[Authzed Materialize] is Authzed's version of the [Leopard cache] referenced in the Zanzibar paper, which provides a denormalized view
@@ -113,6 +114,7 @@ under the above two approaches, we recommend giving Authzed Materialize a try.
[Schedule Call]: https://authzed.com/call
[Leopard cache]: https://authzed.com/zanzibar/2IoYDUFMAE:0:T
+[Materialize overview]: /materialize/getting-started/overview#event-streams
## Other Considerations
diff --git a/lib/changed-pages.json b/lib/changed-pages.json
index 28a924b4..9052da4c 100644
--- a/lib/changed-pages.json
+++ b/lib/changed-pages.json
@@ -1,44 +1,14 @@
{
- "/materialize/api/client-sdks": {
- "status": "updated"
- },
- "/materialize/api/download-permission-sets": {
- "status": "new"
- },
- "/materialize/api/lookup-permission-sets": {
- "status": "updated"
- },
- "/materialize/api/watch-permission-sets": {
- "status": "updated"
- },
- "/materialize/concepts/hydration": {
- "status": "new"
- },
- "/materialize/concepts/managing-client-state": {
- "status": "updated"
- },
- "/materialize/concepts/permission-set-lifecycle": {
- "status": "updated"
- },
- "/materialize/concepts/permission-sets": {
- "status": "updated"
- },
- "/materialize/concepts/snapshots": {
- "status": "updated"
- },
- "/materialize/concepts/watched-permissions": {
- "status": "new"
- },
- "/materialize/getting-started/limitations": {
+ "/authzed/guides/picking-a-product": {
"status": "updated"
},
"/materialize/getting-started/overview": {
"status": "updated"
},
- "/materialize/guides/recommended-architecture": {
+ "/spicedb/getting-started/faq": {
"status": "updated"
},
- "/materialize/guides/relational-database": {
+ "/spicedb/modeling/protecting-a-list-endpoint": {
"status": "updated"
}
}
diff --git a/lib/materialize-features.ts b/lib/materialize-features.ts
index aab8454f..e385caae 100644
--- a/lib/materialize-features.ts
+++ b/lib/materialize-features.ts
@@ -21,11 +21,10 @@ export const FEATURES = {
export type FeatureKey = keyof typeof FEATURES;
-/* Every feature is in early access today, so the note's text doesn't vary.
- It's per-feature anyway because the note is colour-matched to its pill —
- and because these will go GA on different dates. */
+/* Per-feature because the note is colour-matched to its pill, and because
+ these go GA on different dates — Accelerated Queries reached GA first. */
export const EARLY_ACCESS: Record = {
- "accelerated-queries": true,
+ "accelerated-queries": false,
"event-streams": true,
};