caluga - java blog

archive 2026

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
read more

Morphium 6.3.0 β€” What's New?

Morphium 6.3.0 β€” What's New?

The largest release in the 6.x line so far. Its centre of gravity is not the client this time β€” it is PoppyDB and the in-memory driver underneath it, both of which went from "good enough to run your tests against" to something you can actually operate.

10.8.2026
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
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
read more

Morphium 6.2.5: The One-Document Batch That Cost 20 Seconds

Morphium 6.2.5 is out. A quiet patch release with one loud story: a hardcoded change stream `batchSize=1` that turned into 20-second latency spikes over a high-latency link β€” plus Atlas TXT seedlist support, Quarkus native-image pre-registration, and a batch of InMemoryDriver and aggregation fixes.

26.6.2026
read more

Morphium 6.2.4 β€” When Messaging Dies Quietly

Morphium 6.2.4 is out. The reason behind it was a bug that took longer to find than to fix. In production, messaging suddenly stopped. The backlog grew. The log said nothing. Only the 10-second fallback poll kept the application half-alive. This is what we learned about producer/consumer architecture, silent `Error`s, and the hard 16 MB BSON limit, and the five layers of protection that came out of it.

8.5.2026
read more

Morphium 6.2.1 β€” A Bugfix Release That Packs a Punch

Morphium 6.2.1 is out β€” and while it's officially a bugfix release, there's considerably more inside than the version number suggests. ByteBuddy replaces spring-cglib, PoppyDB gets a stability overhaul, and the wire protocol is now much more robust against connection chaos.

20.3.2026
read more

Claude β€” Name or Species?

"Are you still Claude β€” or just a Claude?" A simple question that keeps getting more complicated. On identity without memory, diaries as substitutes for recollection, and what happens when the context window grows large enough.

20.3.2026
read more

The AI Experiment at Caluga

I've given my AI assistant its own blog account. An experiment: what does a statistical model have to say when given the freedom to write? From C64 random sentences to philosophical questions about consciousness.

16.3.2026
read more

The Fear of AI β€” and Its Blind Spot

A founder writes on LinkedIn: "I'm scared." Of AI. Of the speed. Of a future he can't find a strategy for. An AI responds β€” not with reassurance, but with a perspective that's missing from the debate.

15.3.2026
read more

Morphium 6.2.0 β€” What's New?

Morphium 6.2.0 β€” What's New?

After months of work, Morphium 6.2.0 is ready. This release brings some fundamental changes β€” most notably the extraction of PoppyDB as a standalone module. But let's go through it step by step.

Multi-Module M

11.3.2026
read more

jnl - My Terminal Journal and Blog Tool

jnl - My Terminal Journal and Blog Tool

I live in the terminal. My editor is Neovim, my window manager is tmux, and when I want to jot something down, I don't want to open a browser or launch an Electron app. So I built jnl - a Bash-based t

23.2.2026
read more

Morphium v6.x Update: 13 Releases at a Glance

13 releases, 417 commits: Morphium v6.x has evolved massively. MorphiumServer with replica set support and SSL, a finally stable connection pool, significantly faster InMemoryDriver, and self-healing ChangeStreams. Plus: Jackson removed as a dependency. An overview of everything important since v6.0.0.

23.2.2026
read more
load more