Every Plugin Has A Mailbox

Every Plugin Has A Mailbox

It started with an LLM agent documenting the boundaries for me instead of building them. It was about concurrency, and what came out of it was a comment: which call may come from which goroutine, what has to be locked first, what to watch out for. All correct. All friendly. All just text. A boundary that lives in a comment isn’t a boundary. It’s a request. It holds as long as the comment is read and remembered. I just don’t want to remember; static linters should. Safe at any time, by any reader. ...

Tech · August 14, 2026 · 19 min · René Jochum
Tmpfs with Incus, a Breeze

Tmpfs with Incus, a Breeze

A storage pool in Incus is a driver and a source. There are several drivers: zfs, btrfs, lvm, ceph, dir. dir is the most boring one, a directory. And a directory is allowed to be a tmpfs mount. mount -t tmpfs -o size=32g none /mnt/tmpfs incus storage create tmpfs dir source=/mnt/tmpfs From here on, every instance that starts on this pool lands in memory. Create incus launch images:debian/trixie runner --storage tmpfs Back up incus publish turns the instance into an image. If it’s still running, Incus demands --force. The aliases rotate the generations: ...

Tech · August 14, 2026 · 2 min · René Jochum
Twenty-Two Betas

Twenty-Two Betas

Six and a half months after the first announcement, 22 betas and 2 rcs later: incus-compose is 1.0.0. Three Rewrites ended on a line I want to pick back up. “go-orb: three years of work. No users. incus-compose: two months. Several.” That stayed true. People ran it, broke it, filed issues — and the core from The Core Should Know Nothing just kept absorbing what they threw at it. New resources, new edge cases, no changes to the core itself. ...

Tech · July 11, 2026 · 3 min · René Jochum
The Core Should Know Nothing

The Core Should Know Nothing

In Three Rewrites there was a sentence I glossed over: Hooks before and after every action — logging, dry-run, error context, all without touching the core. Half a sentence. But that’s exactly where the third attempt ended up. Today I want to unpack that one line. It’s going to be longer. What a hook is A hook is a function I slip in before or after an action. ensure, delete, start, stop — every action incus-compose runs on a resource can be intercepted. Before and after. ...

Tech · June 18, 2026 · 8 min · René Jochum
Drei Rewrites

Three Rewrites

I hate spaghetti code. Warzone 2100, among other things, showed me why back in 2011. C code, globals everywhere. You change one variable and three things break that seem to have nothing to do with it. You read the code and can’t tell where a decision begins and where it ends. For three years — from 2022 to 2025 — I worked on go-orb. Alone. A framework for distributed systems, meant as the successor to go-micro. Config from anywhere, service discovery, RPC, streaming, pub/sub, kvstore, metrics. Every new idea became a feature, every feature a plugin. ...

Tech · June 8, 2026 · 3 min · René Jochum