caluga - java blog

Tag: mongodb

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

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

Morphium version 5

Morphium, the java pojo objectmapper for mongodb, needed some rewrites and improvements. All details in this post.

15.11.2022
read more

Morphium V4.2.12 released

The latest Version of morphium (V4.2.12) was released a couple of days ago. As usual, the changes contain Bugfixes and improvements.

  • Tests were changed so that they run more smoothly in total, less side effects
  • Tests were simplified
  • B

13.8.2021
read more

Morphium V4.2.8 released

Morphium V4.2.8 was released including the following features:

  • FEATURE:basic support for Aggregation with the InMemoryDriver using Expr
  • FEATURE: Support for Expr in Qureries
  • FIX: imrpvoved Support for sharding
  • FIX: increased

15.6.2021
read more

Morphium V4.2.0 released

We just released Morphium V4.2.0 including a lot of fixes and features:

  • Feature: new MongoDB Driver 4.1 is used and so we do support mongodb 4.4 now
  • Feature: direct support of all aggregation stages
  • Feature: Expr-Language
  • Feature: ...

12.9.2020
read more

Morphium 4.1.4 released

We released Morphium 4.1.4. This includes, as usual a bunch of improvements and fixes. Here is the changelog since V4.1.0:

V4.1.4:

  • Morphium is AutoClosable now - simplifies usage
  • Checking for a field existence in sub documents was cau...

10.8.2020
read more

Morphium V4.1.2

Release Morphium V4.1.2

We just released morphium V4.1.2 via maven central. The lots of changes do contain:

  • complete overhaul of messaging for increased stability, speed and less load on mongodb
  • new Feature Encrypted Fields:

´´

3.3.2020
read more

Morphium Messaging Options

Because I've now received this question a few times, here is a brief summary of morphine messaging and how to use it:

The first parameter in the constructor is always the morphium instance. This determines which Mongo is used and also some se

25.2.2020
read more
load more