2026-08-18 22:35:47 +02:00
|
|
|
|
---
|
|
|
|
|
|
id: state-hub-architecture
|
|
|
|
|
|
title: "State Hub architecture"
|
|
|
|
|
|
status: proposed
|
|
|
|
|
|
owner: state-hub
|
2026-08-19 01:09:18 +02:00
|
|
|
|
revision: "draft-2"
|
2026-08-18 22:35:47 +02:00
|
|
|
|
version: "0.1"
|
2026-08-19 01:09:18 +02:00
|
|
|
|
last_reviewed: "2026-08-19"
|
2026-08-18 22:35:47 +02:00
|
|
|
|
review_interval: 6m
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# State Hub — Software Architecture Documentation (arc42)
|
|
|
|
|
|
|
|
|
|
|
|
## About this document
|
|
|
|
|
|
|
|
|
|
|
|
First-wave arc42 for State Hub, the estate's live coordination
|
|
|
|
|
|
read-model. This service is in active retirement planning; new
|
|
|
|
|
|
permanent ownership should not land here. Chapter 9 points at the
|
|
|
|
|
|
estate ADRs that still bind it.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 1. Introduction and Goals
|
|
|
|
|
|
|
|
|
|
|
|
State Hub is a queryable, auditable memory of work: domains, repos,
|
|
|
|
|
|
workplans, tasks, decisions, progress. Files remain the origin. The
|
|
|
|
|
|
hub is derived state (custodian ADR-001, ADR-003).
|
|
|
|
|
|
|
|
|
|
|
|
It remains operational until retirement gates in
|
|
|
|
|
|
`prj-state-hub-retirement` are met. Replacement ownership is moving
|
|
|
|
|
|
toward `repo-manager` and `hub-core`.
|
|
|
|
|
|
|
|
|
|
|
|
### 1.1 Requirements Overview
|
|
|
|
|
|
|
|
|
|
|
|
- Rebuild coordination state from registered repository files.
|
|
|
|
|
|
- One identifier registrar (ADR-007). This workstation is not it.
|
|
|
|
|
|
- Preserve compatibility; do not take new permanent architectural
|
|
|
|
|
|
ownership.
|
|
|
|
|
|
|
|
|
|
|
|
### 1.2 Quality Goals
|
|
|
|
|
|
|
|
|
|
|
|
1. Rebuildability from git.
|
|
|
|
|
|
2. Hub never becomes the origin of work.
|
|
|
|
|
|
3. Extraction paths stay open.
|
|
|
|
|
|
|
|
|
|
|
|
### 1.3 Stakeholders
|
|
|
|
|
|
|
|
|
|
|
|
| Role | Concern |
|
|
|
|
|
|
| --- | --- |
|
|
|
|
|
|
| state-hub | Live read-model during retirement. |
|
|
|
|
|
|
| the-custodian | Estate rules the hub must not invert. |
|
|
|
|
|
|
| repo-manager | Incoming consistency / repo representation. |
|
|
|
|
|
|
| product repos | Workplan files the hub indexes. |
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 2. Architecture Constraints
|
|
|
|
|
|
|
|
|
|
|
|
N/A for this stub — retirement program is the binding constraint.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 3. System Scope and Context
|
|
|
|
|
|
|
|
|
|
|
|
**In:** indexing workplans/tasks/decisions, consistency rebuild,
|
|
|
|
|
|
query API and dashboard used today.
|
|
|
|
|
|
**Out:** being the source of work items; new cross-domain capabilities;
|
|
|
|
|
|
publication of policy (policy-nexus).
|
|
|
|
|
|
|
|
|
|
|
|
### 3.1 Business Context
|
|
|
|
|
|
|
|
|
|
|
|
Files are excellent for canon and provenance. The estate still needs a
|
|
|
|
|
|
live query surface while retirement proceeds.
|
|
|
|
|
|
|
|
|
|
|
|
### 3.2 Technical Context
|
|
|
|
|
|
|
|
|
|
|
|
Inputs: workplan markdown via `fix-consistency`. Outputs: HTTP/MCP
|
|
|
|
|
|
APIs. Neighbours: every registered repo, activity-core (ops runs),
|
|
|
|
|
|
policy-nexus (does not index the hub).
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 4. Solution Strategy
|
|
|
|
|
|
|
|
|
|
|
|
N/A for this stub. The strategy is already in the estate ADRs: files
|
|
|
|
|
|
first, materialized derived state, single registrar, local cache vs
|
|
|
|
|
|
authority (ADR-010, proposed).
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 5. Building Block View
|
|
|
|
|
|
|
|
|
|
|
|
### 5.1 Level 1 – System/Top-Level
|
|
|
|
|
|
|
|
|
|
|
|
N/A for this stub.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 6. Runtime View
|
|
|
|
|
|
|
|
|
|
|
|
N/A for this stub.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 7. Deployment View
|
|
|
|
|
|
|
|
|
|
|
|
N/A for this stub.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 8. Cross-Cutting Concepts
|
|
|
|
|
|
|
|
|
|
|
|
N/A for this stub.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 9. Architecture Decisions
|
|
|
|
|
|
|
|
|
|
|
|
This repo has no `docs/adr/` corpus. Binding decisions live in
|
|
|
|
|
|
the-custodian and are listed on the estate map:
|
|
|
|
|
|
|
|
|
|
|
|
| Estate ADR | Status | Why it binds this system |
|
|
|
|
|
|
| --- | --- | --- |
|
2026-08-19 01:09:18 +02:00
|
|
|
|
| `CUST-ADR-001` | accepted | Hub is a read model. Published `/adr/custodian-workplans-as-repo-artefacts/v1/`. |
|
|
|
|
|
|
| `CUST-ADR-003` | accepted | How the cache invalidates. |
|
|
|
|
|
|
| `CUST-ADR-007` | accepted | One writer of workplan UUIDs. |
|
|
|
|
|
|
| `CUST-ADR-010` | proposed | Two kinds of hub data. |
|
2026-08-18 22:35:47 +02:00
|
|
|
|
|
|
|
|
|
|
Do not treat a State Hub `/decisions` row as the published ADR.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 10. Quality Requirements
|
|
|
|
|
|
|
|
|
|
|
|
N/A for this stub.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 11. Risks and Technical Debt
|
|
|
|
|
|
|
|
|
|
|
|
N/A for this stub. Residual: this workstation cannot mint registrar
|
|
|
|
|
|
UUIDs.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 12. Glossary
|
|
|
|
|
|
|
|
|
|
|
|
| Term | Meaning |
|
|
|
|
|
|
| --- | --- |
|
|
|
|
|
|
| Read model | Derived index; never the origin. |
|
|
|
|
|
|
| Registrar | The single instance allowed to mint workplan UUIDs. |
|
|
|
|
|
|
| Retirement | Coordinated move of capabilities out of this repo. |
|