diff --git a/README.md b/README.md index 9c48253..f6e4e6f 100644 --- a/README.md +++ b/README.md @@ -40,30 +40,6 @@ Host information is NOT held in this paper. - Paper follows reality: any claim about a host in this repo must be host-verified against eachpath.local records. -## Learning (per-technology resources) - -Every piece of technology we run gets a learning folder, so we can drill -down on the subject itself before the next round-trip builds on it. - -- Folder per technology (see curriculum below). -- Ritual per folder: source of truth (official docs/spec first, never - second-hand), estate mapping (our host, port, version, config quoted - from the host record in eachpath.local), drills (hands-on questions - answered on OUR estate), and the ten-word understood-check said back. -- Learning gate: a primitive runs for real only after its paper is read - and explained back. We build ON knowledge, not around it. - -Curriculum, in strict dependency order: - -| # | Technology | Host record (eachpath.local) | Status | -|---|------------|------------------------------|--------| -| 1 | NATS + JetStream | `saturn.eachpath.local/vms/nats-dev.eachpath.local/` | open | -| 2 | Python asyncio + nats-py | runtime: nimmerworld-dev | next | -| 3 | PostgreSQL (Phoebe) | `.../phoebe-dev.eachpath.local/` | later | -| 4 | Godot client (GDScript, WebSocketPeer) | mimas/lab; boundary rule: pure client | later | -| 5 | FreeIPA / DNS / VLANs | athena, remus, romolus, spine+access | later | -| 6 | OPNsense (vulkan) | `vulkan.eachpath.local/` | later | - ## Clients Client = one crossing callback on the effect side. Runtime-first build order. diff --git a/learning/01-nats-jetstream.md b/learning/01-nats-jetstream.md deleted file mode 100644 index 58b54ce..0000000 --- a/learning/01-nats-jetstream.md +++ /dev/null @@ -1,66 +0,0 @@ -# NATS + JetStream 101 - -Learning-gate paper for subject 1 of the curriculum -(see [the curriculum](../README.md#learning-per-technology-resources)). -We build ON knowledge, not around it. - -## 1. Source of truth - -Read these, in this order, and quote them back rather than paraphrase: - -- NATS core concepts: -- Subjects and wildcards: -- JetStream overview: -- Durable consumers and replay semantics: -- Reference (for drills): - -No blogs, no tutorials, no chat summaries. If something is missing from -the official sources, that is itself a finding worth recording here. - -## 2. Estate mapping (our reality, host-verified) - -| Item | Value | Truth of record | -|------|-------|-----------------| -| Host | `nats-dev.eachpath.local` (Saturn VM 122), `10.0.30.122` | [host record](../../eachpath.local/saturn.eachpath.local/vms/nats-dev.eachpath.local/nats-dev.eachpath.local.md) | -| NATS server | v2.10.24, `/usr/local/bin/nats-server` | host record | -| Ports | client `30000`, HTTP/monitoring `30001` | host record | -| JetStream | enabled, file store `/var/lib/nats/jetstream` (max 10 GB file / 1 GB memory) | host record | -| Streams | `REGISTER` -> `nimmerverse.register.>` (durable), `CYCLE` -> `nimmerverse.cycle.>` (100k msgs) | host record, 2026-11-06 | -| First round-trip | `VM123 ALIVE 2026-11-06` published to `nimmerverse.register.pulse`, replayed by durable consumer `nyx-probe` | host record, 2026-11-06 | -| Client library | `nats-py 2.16.0` in nimmer-lib venv (aynee) | verified 2026-11-06 | - -## 3. Drills - -Hands-on, on OUR estate, answers written into this paper: - -- D1: Is the server alive right now? Read its identity from the HTTP - monitoring port *without* a client library. (curl is a client too.) -- D2: List the streams and their message counts, from the monitoring - port only. -- D3: Publish one message of your own words and read it back via a - durable consumer. Prove the bus *remembers* after the publisher is - gone. -- D4: Prove the bus *forgets on schedule*: find the retention setting - on `CYCLE` and show where 100k lives in `nats stream info`. -- D5: Subjects are names, and names carry meaning: publish to - `nimmerverse.register.pulse` and subscribe `nimmerverse.register.*`. - Explain why the `*` matched and when you would use `>` instead. -- D6: Replay from sequence 1 for a *second* durable consumer and watch - the first one's position remain untouched. Explain why two listeners - on the same bus can disagree about *where they are* without ever - corrupting each other. - -## 4. Understand-check (ten words) - -Said back, in our own words, before any primitive builds on this bus. - -> draft (nyx, 2026-11-06): *the bus keeps every message until retention says stop; consumers read independently.* -> dafit's version: (to be said back) - -## 5. Open questions - -dafit's question log starts here. Every answer that teaches something -gets written into this paper, dated, host-verified if it touches our -estate. - -- (waiting for the first question)