Purpose
NOTIFIER is the governed internal messaging service.
User-to-user notifications delivered inline at ledger write time. Every message is scoped, every delivery is ledgered, every route is declared in GOV via the notify: header. No polling. No ad-hoc messaging. Scope determines the route.
Structure
Leaf SERVICE scope. No governed child scopes.
Delivery routes declared via notify: field in CANON.md headers.
Required closure artifacts per scope:
CANON.md, README.md, NOTIFIER.md, VOCAB.md, ROADMAP.md, COVERAGE.md, LEARNING.md.
Routes
web_docs: https://hadleylab-canonic.github.io/
web_surface: https://hadleylab-canonic.github.io/SERVICES/NOTIFIER/
magic: magic://hadleylab-canonic.github.io/SERVICES/NOTIFIER/
Delivery Contract
1. GOV declares routes — notify: field in CANON.md headers
2. Compiler emits notify targets to CANON.json
3. TALK service triggers delivery at ledger write time
4. Worker delivers inline to principal inbox (KV-backed)
5. Multi-target fan-out: notify: DEXTER, FATIMA → both inboxes
6. Every delivery hashed and ledgered — sender scope, receiver scope, timestamp
7. Inbox per principal — bounded, auditable, governed
Ecosystem Connectivity
- Upstream:
notify:header in any CANON.md declares the delivery route. - Compiler:
build-surfaces emit_canon()propagates notify targets to CANON.json. - Runtime: TALK service triggers delivery; worker writes to inbox KV.
- Ledger: every delivery event recorded — sender, receiver, content hash, timestamp.
Pages
| Page | Sections |
|---|---|
| Overview | Purpose, Structure |
| Delivery | Routes, Delivery Contract |
| Ecosystem | Ecosystem Connectivity |
Default: Overview.
| *NOTIFIER | SPEC | SERVICES* |