diff --git a/app/materialize/getting-started/overview/page.mdx b/app/materialize/getting-started/overview/page.mdx
index 993dcaa7..b2e11c73 100644
--- a/app/materialize/getting-started/overview/page.mdx
+++ b/app/materialize/getting-started/overview/page.mdx
@@ -4,7 +4,8 @@ description: "AuthZed Materialize precomputes the permissions you configure it t
---
import { Callout } from "nextra/components";
-import MaterializeArchitecture from "@/public/images/materialize-architecture.svg";
+import MaterializeArchitectureLight from "@/public/images/materialize-architecture-light.svg";
+import MaterializeArchitectureDark from "@/public/images/materialize-architecture-dark.svg";
# What is Materialize?
@@ -14,10 +15,15 @@ are written (specifically, when those relationships affect a subject's membershi
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
diff --git a/public/images/materialize-architecture-dark.svg b/public/images/materialize-architecture-dark.svg
new file mode 100644
index 00000000..2a4d8c34
--- /dev/null
+++ b/public/images/materialize-architecture-dark.svg
@@ -0,0 +1,162 @@
+
diff --git a/public/images/materialize-architecture.svg b/public/images/materialize-architecture-light.svg
similarity index 85%
rename from public/images/materialize-architecture.svg
rename to public/images/materialize-architecture-light.svg
index 17ccfe5c..bbed9f53 100644
--- a/public/images/materialize-architecture.svg
+++ b/public/images/materialize-architecture-light.svg
@@ -10,16 +10,21 @@
components arranged in the same two rows (row 1 y-center 190, row 2 y-center 430). This isn't a
literal "process vs. storage" split (Hydrator and Event Processor are processes too) — it's purely
so that every connector that stays within one row is a short straight line, and only the two
- cross-cutting flows (Event Streams; watches datastore directly) need routed detours. -->
+ cross-cutting flows (Event Streams; watches datastore directly) need routed detours.
+ - Light/dark: this file is one of a light/dark pair (see materialize-architecture-dark.svg),
+ swapped via Tailwind dark: classes in the mdx that embeds it — same convention as
+ ps-light.svg / ps-dark.svg. Teal and violet match the site's teal500 / violet500 tokens
+ (see feature-badge.css) at each theme's fixed value, so this diagram can't drift from the
+ Accelerated Queries / Event Streams colors used everywhere else. -->
-
+
-
+
@@ -41,16 +46,18 @@
- Hydrator
- computes permission sets
- for watched permissions
+ Offline
+ Hydrator
+ computes permission sets
+ for watched permissions
- Cache Server
- serves hydrated
- permission sets
+ Online
+ Hydrator
+ serves hydrated
+ permission sets
@@ -122,9 +129,9 @@
reads / writes
-
- Accelerated
- Queries
+
+ Accelerated
+ Queries
@@ -146,8 +153,8 @@
Cache Server reads the events it wrote to the Event Log (see connector 3) and streams them to the
customer's Event Processor; bidirectional to also carry backfill requests. -->
- Event Streams
+ fill="none" stroke="hsl(253 62% 50%)" stroke-width="1.5" marker-end="url(#arrow-violet)" marker-start="url(#arrow-violet)" />
+ Event Streams