latest blog entries

Ghostty - switching now

I looked at Ghostty almost two years ago and stuck with WezTerm anyway. The TERM variable on remote systems annoyed me too much. That problem is gone now, so are my thousand lines of Lua config - and the cursor animates via shader these days.

5.9.2026 shellscript bash devops linux
read more

Morphium 6.3.7 and 6.3.8: Bugs We All Had

Last time it was about bugs nobody ever hit. Morphium 6.3.7 and 6.3.8 are the opposite: bugs we all had, for months, some for years. Found because we put PoppyDB onto a real message bus and looked properly - heap histograms, connection counters, logs. One Double per event that never goes away. 937,000 TCP connections in 61 hours for a client with nothing to do. A watchdog with 2,229 false alarms in a week. And a full-cluster restart that shows why a rolling restart is worthless as a test for restore paths.

5.9.2026 morphium java mongodb morphium poppydb messaging release programming
read more

Morphium 6.3.4 to 6.3.6: Fixing Bugs Nobody Ever Hit

Morphium 6.3.4 to 6.3.6 are the strangest releases I've ever done: not a single fix goes back to a bug report. All the bugs were found by AI code review - OpenAI, Anthropic and opencode in collaboration - in code that never let anyone down. Silent data loss under load, 3GB of pinned memory, and a "flaky" CI test that turned out to be a real bug knocking for months. A week of work for bugs nobody ever hit. Yet. On my love-hate relationship with reviewers that never get tired.

21.8.2026
read more

Morphium 6.3.1 — and the Transparent Message Bus

We just released Morphium 6.3.1 - officially a bugfix release, in reality the harvest of 6.3.0's first two production weeks: server-side topic filters in the change stream, detection of mixed messaging implementations, and an in-memory driver that now behaves like mongod down to event ordering. And the occasion for the bigger story: why a message bus made of documents is transparent - with a peeker that reads along without consuming, and Morpheus as the cockpit for the running bus. Try that with Kafka 😉

11.8.2026 morphium java morphium mongodb poppydb messaging release programming quarkus
read more

Using a wire proxy to do failover tests

Failover testing with `kill -9` is manual labor and never runs in CI — yet from a driver's perspective, failover bugs are pure wire phenomena. So we moved the faults onto the wire: one TCP proxy per replica set node that can freeze, reset, or cleanly close connections, plus `hello` rewriting so the driver never sees the real addresses. The harness promptly found real bugs — including a read that spent 26 seconds hammering a dead primary.

6.8.2026 morphium java morphium mongodb programming release poppydb
read more

Morphium 6.2.6: The Timeout That Multiplied Itself by 100

Morphium 6.2.6 is out — and it repairs something that should never have been broken in the first place: replicaset failover. A chain of bugs (chief among them a timeout that silently multiplied itself by 100) meant the driver practically never recovered after the primary died: writes hung, messaging stayed dead. After the fixes: full write throughput ~25 seconds after a kill -9, no lost messages. Also on board: a fix for `findOneAndUpdate` deleting documents instead of updating them on read-cache hits, a self-deadlock in the SingleMongoConnectDriver, and `$setOnInsert`/upsert support in the InMemoryDriver.

9.7.2026 morphium morphium java mongodb replicaset failover release
read more