Meteor 3.5 Released: Change Streams and Performance Gains
Meteor 3.5 makes MongoDB Change Streams the default reactivity engine, delivering 40% more scalability, a pluggable DDP transport layer, and DDP session resumption.
Meteor 3.5 has officially shipped, with MongoDB Change Streams and a new pluggable DDP transport architecture as the centerpiece. Change Streams now serve as the default reactivity mechanism, requiring MongoDB 6+ replica sets or sharded clusters, while automatically falling back to oplog or polling on older versions. The legacy oplog driver tails every database change and diffs it against client documents, which becomes a bottleneck under high load and can trigger out-of-memory crashes; Change Streams instead process data on demand as a stream, and benchmarks show a 40% increase in connection capacity along with far better resilience under stress. This also unlocks real-time reactivity on managed/serverless MongoDB tiers that lack oplog access.
The release additionally introduces a pluggable DDP transport layer with uWebSockets support, DDP session resumption that avoids full reinitialization after network drops (cutting CPU spikes on reconnect), the accounts-express package for authenticated REST endpoints, async rule matchers for DDPRateLimiter, native MongoDB collation support for case-insensitive search and locale-aware sorting, a fully functional DISABLE_SOCKJS mode, and async-first client-side Accounts APIs. Node.js 24.15.0 and NPM 11.12.1 are now bundled as well.
For engineers running Meteor apps, this release is significant for scalability and stability under high concurrent connection loads, often improving performance without requiring any code changes.