Inside WeChat Moments: How 1 Billion Daily Posts Are Managed at Scale
This article summarizes Chen Ming’s 2015 ArchSummit talk on WeChat Moments, detailing its massive posting volume, core database tables, publishing and reading workflows, and the multi‑data‑center disaster‑recovery architecture that ensures seamless, loss‑less service worldwide.
This article compiles information from Chen Ming’s 2015 ArchSummit presentation titled “WeChat Moments Technical Path”. The audio was unclear, so the notes may be incomplete.
WeChat Moments sees over 1 billion posts and more than 100 billion views daily, making its technical approach worth studying.
Core Data Tables
Four main tables are used:
Post : stores each user’s basic post information such as image count, image URLs, visibility settings, etc.
Album : an index table that records all content a user has published; it is small and only keeps references to the posts.
Comment : contains comments and likes associated with a specific post.
Timeline : records the posts of all friends for a given user.
Publishing Workflow
The client uploads images to the nearest CDN and obtains image URLs.
The client sends the post details (image URLs, text, etc.) to the Moments backend.
The backend writes the post details into the Post table.
The index of the new post is written into the Album table.
All friends’ Timeline tables are batch‑updated with the new post index.
Reading Workflow
The user reads their Timeline, retrieving the set of post indexes from friends.
For each post index, the client fetches the post details and reads associated comments and likes from the Comment table.
Disaster‑Recovery Design
WeChat operates four global data centers:
Shanghai – serves northern China users.
Shenzhen – serves southern China users.
Hong Kong – serves Southeast Asia, the Middle East, and Africa.
Canada – serves the Americas and Europe.
Each data center contains multiple zones (e.g., zones A, B, C in Shanghai). Every zone is connected to both China Telecom and China Unicom with excess bandwidth. If any zone fails (e.g., zone C), the client automatically switches to the remaining zones, which have sufficient capacity to handle all traffic without loss or noticeable impact.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Java High-Performance Architecture
Sharing Java development articles and resources, including SSM architecture and the Spring ecosystem (Spring Boot, Spring Cloud, MyBatis, Dubbo, Docker), Zookeeper, Redis, architecture design, microservices, message queues, Git, etc.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
