Alexandria
Vocabulary Hub & DSL (vhub)

Vocabulary Hub Overview (v0.2.1)

Complete architectural overview of the Vocabulary Hub v0.2.1 specification implementation (alexandria-server, alexandria-client, and alexandriac).

Vocabulary Hub (vhub) — Specification v0.2.1

Alexandria includes the complete reference implementation of the Vocabulary Hub System v0.2.1 (F2–F8, Appendices A and B) and the eunomia.profiles/v1 YAML profile compiler.

It is engineered around two strict architectural guarantees:

  1. Deterministic Convergence (REQ-SYS-001): Any two alexandria-client instances that have synchronized the same signed listing (eunomia.versions/v1) and evaluate the same DSP message at the same instant t produce the exact same classification, HTTP action, and VHub-Verdict header.
  2. Zero Hub Contact on the Hot Path (REQ-SYS-002): The edge validation sidecar (alexandria-client) never contacts alexandria-server or resolves did:web while processing a Connector's DSP traffic. All cryptographic verification (S1–S13) happens asynchronously in the background.

System Topology

  ┌─────────────────────────────────────────────────────────────────────────┐
  │                       alexandria-server (C-HUB)                               │
  │                                                                         │
  │  ┌─────────────────────┐  ┌─────────────────────┐  ┌─────────────────┐  │
  │  │ /v1 Governance API  │  │  /pub Distribution  │  │ /.well-known/   │  │
  │  │ Draft -> Candidate  │  │  Immutable Blobs &  │  │ did.json        │  │
  │  │ -> Release / Revoke │  │  303 Head Redirects │  │ (Ed25519 JWK)   │  │
  │  └──────────┬──────────┘  └──────────▲──────────┘  └────────▲────────┘  │
  │             │                        │                      │           │
  │             ▼                        │                      │           │
  │  ┌───────────────────────────────────┴──────────────────────┴────────┐  │
  │  │ compiler_dsl (eunomia.profiles/v1) · SQLite (immutable triggers)  │  │
  │  │ JCS + EdDSA Signer · TransparencyLog (SCITT) · Listing Scheduler  │  │
  │  └───────────────────────────────────────────────────────────────────┘  │
  └───────────────────────────▲──────────────────────▲──────────────────────┘
                              │                      │
             Background Sync  │ GET /v1/versions     │ GET /.well-known/did.json
             (S1–S13, V1–V4)  │ GET /pub/packages/.. │ (cached by did_ttl)
                              │                      │
  ┌───────────────────────────┴──────────────────────┴──────────────────────┐
  │                       alexandria-client (C-CLI Sidecar)                       │
  │                                                                         │
  │  ┌────────────────────────────────────┐  ┌───────────────────────────┐  │
  │  │ Background Sync & Atomic Store     │  │ Admin & Telemetry (:9900) │  │
  │  │ Continuity · PVP Digest Verify     │  │ /status · /versions       │  │
  │  │ Retained Packages · Agreements     │  │ /agreements · /metrics    │  │
  │  └─────────────────┬──────────────────┘  └───────────────────────────┘  │
  │                    │ In-Memory Snapshot (app.Cell)                      │
  │                    ▼                                                    │
  │  ┌───────────────────────────────────────────────────────────────────┐  │
  │  │ Hot-Path L7 DSP Proxy (dsp-ingress :8443 / dsp-egress :3128)      │  │
  │  │ 16 Default DSP Routes · 4 Gates (dsp_message, policy_intake,      │  │
  │  │ catalog_entry, agreement_admission) · VHub-Verdict RFC 9651       │  │
  │  └─────────────────────────────────┬─────────────────────────────────┘  │
  └────────────────────────────────────┼────────────────────────────────────┘
                                       │ Byte-for-byte HTTP Forward
                                       ▼
                        ┌──────────────────────────────┐
                        │  Dataspace Connector (DSP)   │
                        └──────────────────────────────┘

Pure Shared Core (internal/core)

Both alexandria-server and alexandria-client share a zero-network, deterministic core (internal/core):

PackageResponsibility
internal/core/timexInjectable Clock interface and ISO 8601 duration parser (P30D, PT24H, PT10S).
internal/core/semverStrict SemVer 2.0 parsing, ordering, and bump classification (initial, compatible, breaking).
internal/core/canonRFC 8785 JSON Canonicalization Scheme (JCS) for deterministic signing payloads.
internal/core/niRFC 6920 Named Information (ni:///sha-256;<base64url>) digest calculation and verification.
internal/core/diddid:web parsing, URL transformation (%3A port decoding), and W3C DID Document verification (V1–V4).
internal/core/signNormative {signed, signature: {kid, alg: "EdDSA", sig}} envelope signing and verification over JCS(signed).
internal/core/lifecycle9-row release date calculator (REQ-HUB-005), date invariants (DATE-1, DATE-2), revocation invariants (REV-1..REV-4), state machine (Announced, Effective, Enforced, Transition, Retired, Revoked), and effective version set V_t.
internal/core/pkgvProfile Vocabulary Package (PVP) verifier (manifest.json, space-lock.json, file digest completeness).
internal/core/codesClosed catalog of 64 normative error and verdict codes (catalog.tsv).
internal/core/problemRFC 9457 application/problem+json serializer for HTTP errors.
internal/core/schemasEmbedded JSON Schema Draft 2020-12 validators for Appendix A.1 (versions), A.2 (version), A.3 (config), and A.4 (verdict-event).

Deep-Dive Guides

On this page