Hi everyone!
I’m currently working on a deep-dive explanation of how the DDP (Distributed Data Protocol) module works in Meteor.js covering the full flow from the initial WebSocket connection all the way to the message exchange between client and server, including method, sub, ready, changed, and so on.
The main motivation behind this is to help the community gain a deeper understanding of Meteor’s core, especially since DDP is at the heart of Meteor’s reactivity and real-time capabilities. Despite its importance, there’s still a lack of detailed, modern, and accessible documentation around it.
I believe that discussions like “What if Meteor was created in 2025?” we need to first understand how it works under the hood. This kind of knowledge can serve as a technical foundation for making more informed architectural decisions.
The content is being written here (GitHub blog-style draft):
It’s a PR to enable reviews to appoint changes and corrections, in the PR’s description you can find the rendered markdown file with all the content inside.
content here
review here
Current status:
It’s still a work in progress! I’m writing and doing a doble check in the source code, aiming to keep it clear, didactic, and technically accurate.
How you can help:
- Read and give feedback on clarity
- Suggest improvements or missing areas
- Help validate the technical accuracy (especially if you’ve worked with DDP or the Meteor core)
Any feedback, insight, or help is very welcome! 
8 Likes
EXCELLENT.
This is a long-missing piece of documentation.
Personally, I think the minimongo/Mongo portions are of particular importance, as minimongo constitutes a client-side replica set, with DDP being the data transport layer. A dive into CAP theorem would probably be relevant, as well as the old adage that there are two things difficult in computer science - and the merge box and observer multiplexer are basically involving themselves with the problem of cache invalidation.
Although question: I thought the mergebox was on the client, no? I’m not necessarily disagreeing with the flow, but an initial read of the chart seems to be that the horizontal axis is client to server; but I think there’s a pivot at the MongoDB. The sequence diagram in section 4 is… maybe less intuitive than it could be.
I guess I have to look for a different presentation topic on this year’s Meteor Impact 
3 Likes
@radekmie let me know if you will change your presentation, maybe I can talk about the how the DDP works internally
I will review it, as i said, i’m still checking the facts while writting it, thanks for the feedback!
Wow this is a very very intense article. I appreciate you taking the time and effort to come up with this.
The diagrams are very thorough and you explain everything all at once. But I guess that’s the problem you’re trying to explain everything at once to the point where you don’t explain anything.
The flow goes like this title → a little description + code → diagram → repeat
Another problem is that since you go through everything so quickly, this is not an entry level article, was this on purpose? I was only able to understand this article due to my prior knowledge. It’d be helpful for you to define your target audience before committing to writing.
I think it’d be best to cut up this article into series where you can maybe wrap up in the last article and explain how all pieces of the jigsaw into place.
To be clear, I’m not putting this effort down. I’m super grateful for it. Great work

Just because someone explained a topic before doesn’t mean there’s not enough room to add something more or to explain things differently. I’m super stoked about your talk actually.
1 Like