Strata architecture and SDD
Strata is a structured server application layer for Angular and Analog, powered by H3. This directory separates implemented facts, architectural decisions, and unproven hypotheses. Documentation is in English to follow the existing OSS repository conventions.
Start here
| I want to... | Read |
|---|---|
| Install Strata and run the examples | Getting started |
| Use controllers with Analog/Nitro or H3, or use Server Components | Controllers and server integrations |
| Know what is implemented and what was verified | Current state |
| Maintain, validate or preview these docs | Documentation workflow |
Sources of truth
| Question | Authoritative document |
|---|---|
| What exists and what was actually checked? | Current state, backed by source, lockfile and tests |
| What is Strata for? | Vision |
| What owns each responsibility and boundary? | Architecture |
| What happens next and what gates progress? | Roadmap |
| What does upstream currently provide? | Dated ecosystem research |
| Which combinations may we claim to support? | Compatibility |
| What remains uncertain? | Risk register |
| What evidence must tests produce? | Testing strategy |
| How do Astra and implementation agents work? | SDD workflow |
| When may we release 1.0? | Release gates |
| How is the public repository configured? | Repository operations |
| Why was a consequential decision made? | Accepted records in adr/ |
| What may the next implementation agent do? | The single ready spec in specs/ |
Code is authoritative for existing behavior. An accepted ADR is authoritative for a design decision, not proof of implementation. The roadmap describes intent; a checked gate requires linked evidence. Research describes upstream claims, not Strata compatibility.
Current handoff
Reconciled 2026-09-24 at c671ba4 + SPEC-003 branch. See STATE.
- H3 consumer qualification track: SPEC-001 and SPEC-002 executed; strict consumer types for
@strata-sc/h3remain upstream-blocked (H3/crossws declarations), so M1 stays Blocked. Review evidence and measured closure matrix remain current. - Analog integration track:
@strata-sc/analogregisters controllers on Nitro's router (baseline), with request input (PR #17), per-request controllers (PR #18) and request cleanup (PR #19). SPEC-003 reached a CONDITIONAL GO for Angular DI through consumer-owned injectors. A later cross-runtime check confirms the existing Node scenarios and records a local workerd NO-GO because Angular JIT code generation is refused; guard/interceptor composition with the DI-backed controller remains unqualified (report). - Server Components: three PoCs reached CONDITIONAL GO
(graph,
navigation,
Cloudflare): document navigation only, Angular
Router navigation NO-GO. The mechanism is the private, unpublished
@strata-sc/server-componentspackage (README); no production implementation or public API exists. - Packages are experimental
0.x;@strata-sc/core,@strata-sc/analogand@strata-sc/server-componentsare published to npm, stable releases onlatest(ADR-004, ADR-005). - 1.0 requires production Server Components, automated boundary evidence and a real consumer.
Accepted decisions
- ADR-001: standard decorators and explicit metadata.
- ADR-002: independent core and an initially H3 v2 adapter.
- ADR-003: Server Components are a production release gate.
- ADR-004: experimental npm distribution of core and analog under
next(dist-tag rule superseded by ADR-005). - ADR-005: stable releases on
latest, prereleases onnext.
DI, consumer compiler strategy, component protocol and navigation protocol have no accepted ADR yet. Their experiments are planned in the roadmap; their APIs are not frozen.