After the substrate: building software without a datacenter
Description
Building software for a small clinic, a hardware-store inventory system, or a regional logistics back office requires the operational expertise of running a datacenter — not because the domain demands it, but because the conventional cloud-microservice architecture does. The barrier is not the problem being solved; it is the stack that the problem is conventionally solved on.
This paper observes that under a journaled-program substrate — developed piece by piece across the prior six papers of this series — the datacenter ceases to be a structural requirement of running production software. Cloud and microservice ecosystems, when accessed from a journaled program, become libraries the program invokes rather than habitats the program must inhabit. Software can be shipped in shapes the conventional stack does not permit: a single on-premises appliance the customer owns, a peer mesh of devices that cooperate without a central server, a hybrid that invokes cloud services as libraries.
A working instantiation makes the observation operationally inspectable: a port of the Ordering bounded context of Microsoft's dotnet/eShop reference application to a journaled-program substrate, replicated across three nodes that bootstrap each other through paper QR codes. After bootstrap, the cluster operates against its own journals; none of the services that originally constituted the Ordering microservice are reachable from it; the cluster continues to function under each one's absence.
A side observation: the role that prior literature names *server* becomes ephemeral under this substrate — discharged once per peer during the analog bootstrap, then absent from the running cluster. The construct *accidental category*, applied here at the role layer, is offered as a diagnostic lens; it is not the contribution. The contribution is the practical observation that journaled-program substrates make datacenter-less software construction operationally inspectable, in one working case.
Series information (English)
Paper 7 of the Puppeteer Papers Series. Source-code references resolve against commit b42d0f7 of https://github.com/alvaroNCubo/puppeteer (2026-05-26), which includes the substrate code described in §4-§5, the reproducibility artifacts of Appendix A, and the SimpleX-based transport referenced in §6.
The series develops a research program around journaled-program substrates and their structural consequences. A unified monograph integrating all seven papers (Puppeteer: Journaled Programs and the Dissolution of Infrastructure) is available at https://github.com/alvaroNCubo/puppeteer-papers/blob/main/puppeteer-monograph.pdf.
Technical info (English)
The earlier substrate snapshot (commit 2f31f96, 2026-05-18) is archived in Software Heritage at:
swh:1:dir:10e7e6bad7eb77b6c2e406762026177f95c3ae92
;origin=https://github.com/alvaroNCubo/puppeteer
;anchor=swh:1:rev:2f31f9674a5de816bdf1bf9d8360ff218a02e4da
Inline references in the paper of the form file.cs:NN resolve against the SimpleX-instrumented commit b42d0f7. Readers can construct per-file SWHIDs against the archived 2f31f96 snapshot by appending ;path=<path>;lines=<NN> to the directory SWHID above. The b42d0f7 snapshot is under SWH archival as of this deposit (request id 2342898); once indexed, its dir SWHID swh:1:dir:177e2d61486bdbdfd2d5e774fcf392a45406e60d will also resolve.
Files
07-after-the-substrate.md
Files
(247.5 kB)
| Name | Size | Download all |
|---|---|---|
|
md5:9e6e794967d7474997396aea0349326e
|
84.5 kB | Preview Download |
|
md5:0d5d40eaf5bc84dcbcd4a49e3fffd7c2
|
163.1 kB | Preview Download |
Additional details
Software
- Repository URL
- https://github.com/alvaroNCubo/puppeteer
- Programming language
- C#
- Development Status
- Active