Periodic Moxn updates run through Temporal
What runs
A Temporal workflow drives the periodic refresh of this knowledge base. It wakes on a schedule, walks the sources each document declares, and writes changes back into Moxn as ordinary edits. Moxn holds the canonical content. Everything downstream, including this page, compiles from it.
The published surface is deliberately narrow. Only documents under /publish reach the public site. The rest of the workspace stays private, and the boundary is the path itself rather than a per-document flag somebody has to remember to set.
Why Temporal rather than a cron
A refresh is a long, partial, resumable thing. It fans out across sources that fail independently, and the useful unit of recovery is one source rather than the whole run. That is the shape Temporal is good at and the shape a cron is bad at.
- Partial failure stays partial. One unreachable source does not roll back the documents that did update.
- Retries are the workflow’s problem, not mine. Backoff and attempt limits are declared once instead of reimplemented per job.
- A run is inspectable after the fact. When a document changes unexpectedly, the history says which activity wrote it and why it ran.
How a change reaches this page
temporal workflow ──> moxn (canonical) ──> sync loop ──> hugo ──> caddy ──> you
The sync loop pulls every document under /publish, renders it, and builds into a new directory named for the content revision. Only a successful build moves the symlink the web server follows. A malformed document fails the build, the symlink does not move, and the last good version stays up. A Moxn outage freezes updates rather than causing one.
The revision at the bottom of this page names the exact content build serving it.