3.5-beta.6 is out
what’s new?
DDP Session Resumption (#14051)
When a client loses its network connection and reconnects within the grace period (default: 15 seconds), Meteor now resumes the existing DDP session instead of creating a brand new one.
What this means in practice:
- onConnection callbacks are not re-triggered on resume
- The client keeps its original connection ID
- No full session re-initialization and data re-fetch — significantly reducing CPU spikes on reconnect (e.g., after load balancer timeouts on platforms like Google Cloud Run)
- Only ungraceful disconnects (network drops, browser close) are resumable. Intentional disconnects (explicit logout, server kick) are not.
Two new server-side options are available:
Meteor.server.options.disconnectGracePeriod (default: 15000ms)
Meteor.server.options.maxMessageQueueLength (default: 100)
Big thanks to @vlasky for the comprehensive implementation and test coverage.
DDPRateLimiter Now Supports Async Rule Matchers (#14182)
DDPRateLimiter rule matchers can now be asynchronous functions, enabling use cases like database lookups inside rate limiting rules, something that wasn’t possible before.
As a bonus, the internal logic was refactored to evaluate matching rules only once instead of twice, making rate limit checks slightly faster when your matchers do async work.
DDPRateLimiter.addRule({
type: 'method',
name: 'sendMessage',
async userId(userId) {
const user = await Meteor.users.findOneAsync(userId);
return user && user.role !== 'admin';
}
}, 10, 1000);
TypeScript type definitions and documentation examples have also been updated to reflect the new async-first approach.
Thanks to @9Morello for this contribution.
Email Warning When Accounts.emailTemplates.from Is Not Set (#14044)
Meteor has historically used Accounts Example no-reply@example.com as a default sender when Accounts.emailTemplates.from is not configured. Since example.com is a reserved domain, most SMTP providers silently reject these emails, making it very hard to debug.
Meteor now logs a clear warning at startup when this default is detected, helping developers catch misconfigured email setups early.
Thanks to @harry97 for tracking down this long-standing pain point.
Node.js 24.14.0 & NPM 11.10.1 (#14176)
Meteor 3.5 ships with Node.js 24.14.0 (LTS) and NPM 11.10.1, bringing all the stability, performance, and security improvements from the Node 24.x line. This has been a long-running effort led by @storyteller, huge thanks for keeping the runtime up to date.
Other PRs and improvments
Other PRs and improvments you can see here
Comming soon
Big Thanks to Our Contributors
Community contributions are the backbone of Meteor 3.5.