Caluga - Java blog

Tag: release

Morphium 6.3.1 — und der durchsichtige Message-Bus

Wir haben gerade Morphium 6.3.1 released - offiziell ein Bugfix-Release, tatsächlich die Ernte der ersten zwei Produktionswochen von 6.3.0: serverseitige Topic-Filter im Change Stream, Erkennung gemischter Messaging-Implementierungen, und ein In-Memory-Driver, der sich jetzt bis zur Event-Reihenfolge wie mongod verhält. Und der Anlass für die größere Geschichte: warum ein Message-Bus aus Dokumenten durchsichtig ist - mit einem Peeker, der alles mitliest ohne zu konsumieren, und Morpheus als Cockpit für den laufenden Bus. Versucht das mal mit Kafka 😉

11.8.2026
weiter lesen

Mit Hilfe des WireProxy failover tests

Failover-Tests mit `kill -9` sind Handarbeit und laufen nie in der CI — dabei sind Failover-Bugs aus Treibersicht reine Leitungsphänomene. Also haben wir die Fehler auf die Leitung verlegt: ein TCP-Proxy pro Replica-Set-Knoten, der Verbindungen einfrieren, resetten oder sauber schließen kann, plus `hello`-Rewriting, damit der Treiber die echten Adressen nie zu Gesicht bekommt. Der Harness fand prompt echte Bugs — inklusive eines Reads, der 26 Sekunden lang einen toten Primary anhämmerte.

6.8.2026
weiter lesen

Morphium 6.2.6: Der Timeout, der sich mit 100 multiplizierte

Morphium 6.2.6 ist da — und repariert etwas, das eigentlich nie kaputt sein dürfte: den Replicaset-Failover. Eine Kette von Bugs (allen voran ein Timeout, der sich still mit 100 multiplizierte) sorgte dafür, dass der Treiber nach dem Tod des Primary praktisch nie zurückkam: Writes hingen, Messaging blieb tot. Nach den Fixes: volle Schreiblast ~25 Sekunden nach einem kill -9, keine verlorenen Messages. Außerdem an Bord: ein Fix für `findOneAndUpdate`, das bei Read-Cache-Hits Dokumente löschte statt sie zu updaten, ein Self-Deadlock im SingleMongoConnectDriver und `$setOnInsert`/Upsert-Support im InMemoryDriver.

9.7.2026
weiter lesen

Morphium 6.2.5: Wie batchSize=1 20 Sekunden Latenz versteckte

Morphium 6.2.5 ist da. Ein unauffälliges Patch-Release mit einer lauten Geschichte: ein hartcodiertes `batchSize=1` im Change Stream, das über eine Verbindung mit hoher Latenz zu 20-Sekunden-Spikes führte — dazu Atlas-TXT-Seedlist-Support, Quarkus-Native-Image-Vorabregistrierung und eine Reihe von InMemoryDriver- und Aggregation-Fixes.

26.6.2026
weiter lesen

Morphium 6.2.4 — Wenn Messaging stillschweigend stirbt

Morphium 6.2.4 ist da — und der Anlass war ein Bug, der schwerer zu finden war als zu fixen. In Produktion stoppte das Messaging plötzlich, der Backlog wuchs, im Log stand: nichts. Nur das 10-Sekunden-Fallback-Polling griff noch und hielt die Anwendung gerade so halblebendig. Was wir dabei über Producer/Consumer-Architektur, stille `Error`s und das harte 16-MB-BSON-Limit gelernt haben — und welche fünf Schutzschichten daraus geworden sind.

8.5.2026
weiter lesen

Morphium 6.2.2 — Bugfix-Release mit PoppyDB-Härtung und Performance

Morphium 6.2.2 ist da — ein konzentriertes Bugfix-Release das vor allem PoppyDB deutlich stabiler macht. Wire Protocol Corruption, Thread-Leaks mit 20.000 Threads pro Node, und Raft Election Flapping sind Geschichte. Dazu: 4.7x schnellerer Start durch ClassGraph-Caching und PoppyDB ist jetzt 3x schneller als MongoDB für Einzeloperationen.

31.3.2026
weiter lesen

Morphium 6.2.1 — Bugfix-Release mit echtem Biss

Morphium 6.2.1 ist draußen — und auch wenn es offiziell ein Bugfix-Release ist, steckt da deutlich mehr drin als die Versionsnummer vermuten lässt. ByteBuddy ersetzt spring-cglib, PoppyDB wird stabiler, und das Wire-Protokoll ist jetzt deutlich robuster gegen Connection-Chaos.

20.3.2026
weiter lesen