From 065e5daf8fc5d8a7b6e7c750224201327369b45b Mon Sep 17 00:00:00 2001
From: Taylor <28880387+tsmithv11@users.noreply.github.com>
Date: Wed, 22 Jul 2026 08:20:04 -0700
Subject: [PATCH 1/2] Update arch diagram
Update diagram and remove "signals"
---
docs/enterprise/architecture.mdx | 28 ++++++++++++++++++++--------
1 file changed, 20 insertions(+), 8 deletions(-)
diff --git a/docs/enterprise/architecture.mdx b/docs/enterprise/architecture.mdx
index e4c9efa..c34a261 100644
--- a/docs/enterprise/architecture.mdx
+++ b/docs/enterprise/architecture.mdx
@@ -52,11 +52,22 @@ flowchart TB
Remote[Remote table / API boundary]
subgraph DP[Data plane]
- QN[Query nodes]
- PE[Plan executors
cache + distributed execution]
+ QN[Query nodes
query fleet]
+
+ subgraph RING[Executor cache ring]
+ direction LR
+ PE1[Executor
+ cache]
+ PE2[Executor
+ cache]
+ PE3[Executor
+ cache]
+ PE4[Executor
+ cache]
+ PE1 -.- PE2 -.- PE3 -.- PE4 -.- PE1
+ end
+
IX[Indexers / background workers]
end
+ EQ{{Event queue}}
+
subgraph CP[Control plane]
CFG[Configuration, identity,
policy, lifecycle]
end
@@ -65,13 +76,14 @@ flowchart TB
Client -->|Read / write requests| Remote
Remote --> QN
- QN -->|Query sub-plans| PE
+ QN -->|Query sub-plans| RING
QN -->|Commits writes| OS
- PE <-->|Read data| OS
+ RING <-->|Read data| OS
IX <-->|Build indexes / compact data| OS
- QN -.->|Indexing / compaction signals| IX
+ QN -->|Indexing / compaction events| EQ
+ EQ -->|Dispatch work| IX
CFG -.->|Govern and configure| QN
- CFG -.->|Govern and configure| PE
+ CFG -.->|Govern and configure| RING
CFG -.->|Govern and configure| IX
```
@@ -111,8 +123,8 @@ Indexing, compaction, and cleanup are intentionally moved off the user request p
In practice, that usually looks like this:
-1. Table changes create follow-up signals for indexing, compaction, or cleanup.
-2. A background coordinator agent evaluates the state of the table and decides what should run next.
+1. Table changes create follow-up events that query nodes publish to an event queue for indexing, compaction, or cleanup.
+2. A background coordinator agent consumes those events, evaluates the state of the table, and decides what should run next.
3. Indexers read the relevant table state from object storage, produce updated artifacts, and write the results back.
This separation is one of the clearest architectural reasons to use LanceDB Enterprise: the same query-serving infrastructure does not have to handle every expensive indexing or compaction task itself.
From d85acf68863d8b13a6c779e955919f39e7a492ab Mon Sep 17 00:00:00 2001
From: Taylor <28880387+tsmithv11@users.noreply.github.com>
Date: Thu, 23 Jul 2026 22:33:47 -0700
Subject: [PATCH 2/2] Update based on final from eng
---
docs/enterprise/architecture.mdx | 57 ++++++++++++++------------------
1 file changed, 25 insertions(+), 32 deletions(-)
diff --git a/docs/enterprise/architecture.mdx b/docs/enterprise/architecture.mdx
index c34a261..f8d58ac 100644
--- a/docs/enterprise/architecture.mdx
+++ b/docs/enterprise/architecture.mdx
@@ -48,43 +48,36 @@ Indexers handle heavyweight background work such as building indexes, merging in
```mermaid
flowchart TB
- Client[Client application]
- Remote[Remote table / API boundary]
+ Client[Client applications]
- subgraph DP[Data plane]
- QN[Query nodes
query fleet]
-
- subgraph RING[Executor cache ring]
- direction LR
- PE1[Executor
+ cache]
- PE2[Executor
+ cache]
- PE3[Executor
+ cache]
- PE4[Executor
+ cache]
- PE1 -.- PE2 -.- PE3 -.- PE4 -.- PE1
- end
-
- IX[Indexers / background workers]
+ subgraph CP[Control plane]
+ CFG[Configuration, identity, policy, lifecycle]
end
- EQ{{Event queue}}
-
- subgraph CP[Control plane]
- CFG[Configuration, identity,
policy, lifecycle]
+ subgraph DP[Data Plane
Managed or self-hosted]
+ QP[Query planning + routing fleet]
+ PE[Executor + cache fleet]
+ MON[Monitoring + orchestration fleet]
+ WAL[MemWAL fleet]
+ JOBS[Jobs fleet]
+
+ QP -->|Query subplans| PE
+ QP -->|Send state + job requests| MON
+ QP -->|Fresh reads and writes| WAL
+ PE -.->|Send state| MON
+ WAL -.->|Send state| MON
+ MON -->|Indexing, compaction,
backfill, refresh jobs| JOBS
+ JOBS -->|Send state| MON
end
- OS[(Object storage
table data, manifests, indexes)]
-
- Client -->|Read / write requests| Remote
- Remote --> QN
- QN -->|Query sub-plans| RING
- QN -->|Commits writes| OS
- RING <-->|Read data| OS
- IX <-->|Build indexes / compact data| OS
- QN -->|Indexing / compaction events| EQ
- EQ -->|Dispatch work| IX
- CFG -.->|Govern and configure| QN
- CFG -.->|Govern and configure| RING
- CFG -.->|Govern and configure| IX
+ OS[(Object Storage)]
+
+ Client -->|Queries, writes, backfills| DP
+ CFG -.->|Govern and configure| DP
+ PE -->|Read, cache data| OS
+ JOBS -->|Read/write table and feature data| OS
+ MON -.->|Table and cluster state| OS
+ WAL -->|Persist| OS
```
## Remote tables