Meta's real-time communication capabilities have evolved significantly, starting with the foundational challenges of providing real-time messaging and presence notifications with Facebook Chat. This involved overcoming issues with handling large-scale presence updates, ensuring timely message delivery through techniques like XHR long polling, and building fault-tolerant distributed systems. The 'mercury project' introduced modular design, test-oriented development, and functional programming to the backend. The Messages application back end was built from scratch to integrate email, SMS, Facebook Chat, and the existing Facebook Inbox, requiring a new infrastructure stack. This stack features application servers with an API entry point, distributed logic managed by cells and ZooKeeper for sharding and failover, a write-through cache, and a data access layer with a time-sequenced log and snapshots backed by HBase. Other services include an MTA proxy for email parsing, a discovery service for user-to-cell mapping, and a user index service for social information. Tools for daily deployments, monitoring, and performance analysis were also developed.
All Meta trails