Skip to content

docs(F1): three-node demo topology design (ADR 0012 + build spec)#150

Merged
brownjuly2003-code merged 1 commit into
mainfrom
docs/f1-three-node-topology
Jul 4, 2026
Merged

docs(F1): three-node demo topology design (ADR 0012 + build spec)#150
brownjuly2003-code merged 1 commit into
mainfrom
docs/f1-three-node-topology

Conversation

@brownjuly2003-code

Copy link
Copy Markdown
Owner

F1 — three-node demo topology (design)

Phase F of the endgame plan. Design-only: ADR 0012 + a build-contract spec + an architecture.md callout. No code and no deploy — F2 implements, and the Space deploy is an owner gate.

What this designs

A three-node public HF demo that shows the branch-distribution story live:

  • Center = msk (HQ) — serving API in demo mode plus an authenticated node-ingest endpoint and a cross-branch view.
  • Edge = spb + ekb — each seeds its branch slice and pushes operational events to the center over HTTPS.
  • One image, three roles via AGENTFLOW_NODE_* env; three Spaces under one liovina account (no second account / org).

Key decisions (the irreversible calls — worth a look)

  • Distribution ≠ scaling. A different axis from ADR 0009/0010's multi-replica PostgreSQL scale profile: three separate single-replica Spaces with embedded control planes. The honesty boundary is written out so the Phase G audit can't flag an over-claim.
  • Transport substitution: HTTPS replaces Kafka→Flink between nodes (event semantics preserved), stated in the node READMEs.
  • Foreign branches dxb/ala stay narrative, not live nodes — keeps "RU PII never crosses the border" honest (no faux-PII over the public internet to a UAE/KZ Space).
  • Push + on-demand, no keep-alive: sleep choreography is self-healing; the federated live layer is ephemeral on a deterministic re-seeded baseline.

Files

  • docs/decisions/0012-three-node-demo-topology.md — the decision (context, options, honesty boundary, non-goals).
  • docs/three-node-demo-topology.md — build contract for F2: Space/env matrices, POST /v1/node/events contract, canonical event payload, boot/emit/sleep sequences, deploy runbook, verify-live checklist, and N1–N12 node invariants as the test spec.
  • docs/architecture.md — parallel ADR callout.

Reuses the existing event path (local_pipeline._process_event, the background generator, the pipeline_events journal), so F2's new surface stays thin: an ingest endpoint + an edge emitter + a cross-branch view.

🤖 Generated with Claude Code

ADR 0012 + docs/three-node-demo-topology.md design the Phase F three-node
Hugging Face demo: center (msk HQ) + two edge branches (spb/ekb) that push
operational events over HTTPS, with stateless re-seed, sleep choreography, and
the N1-N12 node invariants as the F2 test spec.

Key decisions: this is the branch-distribution axis, deliberately distinct from
the ADR 0010 multi-replica PostgreSQL scaling profile (the three nodes are
separate single-replica Spaces with embedded control planes); HTTPS substitutes
for the Kafka/Flink transport (semantics preserved); foreign branches (dxb/ala)
stay narrative, not live nodes, to keep the "RU PII never crosses the border"
governance claim honest; three Spaces under one liovina account, no second
account or org needed (proven by existing live Spaces). architecture.md gets a
parallel ADR callout.

Design-only; F2 implements and the Space deploy is an owner gate.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jul 4, 2026

Copy link
Copy Markdown

DORA Metrics

  • Window: last 30 days
  • Branch: main
  • Deployment frequency: 126 total / 29.4 per week
  • Lead time for changes: avg 0.42h / median 0.0h
  • Change failure rate: 74.6% (94/126)
  • MTTR: 0.29h across 2 incident(s)

@brownjuly2003-code brownjuly2003-code merged commit f509391 into main Jul 4, 2026
19 checks passed
@brownjuly2003-code brownjuly2003-code deleted the docs/f1-three-node-topology branch July 4, 2026 08:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants