Morphium 6.3.15 β and the whole 6.3 series
6.3.15 is out! The release that runs on our message bus. But today I do not want to celebrate only 6.3.15. I want to celebrate the whole series. Sixteen releases in two and a half months. From 6.3.0 on August 9th to 6.3.15 on October 21st.
The series
Some of these already have their own post. Here is the whole list, with the most important thing in one sentence:
- 6.3.0 (Aug 9) β the big one. Own wire-protocol driver, the InMemoryDriver, and PoppyDB as a topic.
- 6.3.1 (Aug 11) β the transparent message bus. Application code can now see the delivery.
- 6.3.2 + 6.3.3 (Aug 18) β the first findings from the acceptance run.
- 6.3.4 to 6.3.6 (Aug 21) β three releases in one day. That was the week we worked through the findings.
- 6.3.7/6.3.8 (Aug 26/31) β "bugs we all had". The Double per event. The 937,000 TCP connections for a client with nothing to do. The watchdog with 2,229 false alarms.
- 6.3.9 (Sep 16) β PoppyDB can be stopped with
shutdownover the wire. Memory-watermark retries. Restore from the dump without a size ceiling. And the duplicate write after a lost reply is fixed. - 6.3.10 (Sep 19) β the default read preference is now
primaryPreferred. Lazy-loading works on Java 25. And a whole wagon-load of InMemoryDriver aggregation. - 6.3.11 (Sep 21) β number comparisons are now exact past 2^53. Change-stream cleanup on re-syncing nodes.
- 6.3.12 (Sep 22) β the SCRAM security fix (CVE-2025-59432). And more InMemoryDriver hardening.
- 6.3.13 β does not exist. It was Halloween. We did not want to take any risks. 😉
- 6.3.14 (Oct 12) β MongoDB 9.0
constraintvalidation. PoppyDB replication flow control. A global cursor budget. AndWAIT_FOR_ALL_SLAVESfollows the reachable member count again. - 6.3.15 (Oct 21) β the go-live on the bus. The replay-backlog gate,
CommandStatusinstead of a dozen scatteredokcomparisons, "no reply is a retryable network error".
Not every release got its own blog post. The ones in between, like 6.3.2 and 6.3.3, and the newer ones, 6.3.9 to 6.3.14, were just as important. Especially 6.3.12 with the SCRAM fix and 6.3.14 with the replication flow control. All the details are in the changelog.
Why so many releases?
I asked myself the same question. Sixteen releases looks like a lot. But it was exactly right. Because every measurement, every finding from the acceptance run was fed straight back into a release. Small releases. Each contained only what came out of a concrete observation. No batch release with twenty things.
"small release - small problems / big release - big problems" - that proved itself again here. Small, incremental changes are far less dangerous than big-bang releases!
Test suite
You only do that with a test suite you trust. Ours is big. Most tests run in several phases: 3,565 test methods in the in-memory run, 2,615 against MongoDB (replica set and single node), 2,589 against PoppyDB (replica set and single node). On top come dedicated tests for individual phases (failover does not make much sense in-memory) and the modules' own phases. All counted together over all phases, the test runner currently stands at 13,973 test methods per complete run, not a single one broken. Each complete test run takes about 1.5 hours. So you can let it run several times a day.

Results are stored as JSON in git, on our own test-results branch: one file per run, with classes, methods, pass/broken/skipped/flaky and duration. Append-only, every number traceable. If it stays green, you can keep up that pace. Without the tests you would be flying blind.
We put a lot of real work into the tests and found an incredible amount. We even wrote testing tools (Wire Proxy!). That made a lot of it possible in the first place.
And it paid off: 6.3.15 is the release that has been running in production on our bus since October 21st. What we measured there is in the go-live post β in short: more throughput, less latency, practically no errors anymore.
Where do I get Morphium? PoppyDB?
PoppyDB and Morphium 6.3.15 are on Maven Central. The changelogs for the whole series are on GitHub.
Thanks to everyone who tested, reported and contributed. The next releases will come. 😉