Facebook Chat
Facebook Chat

Facebook Chat

5/14/2008 · Eugene Letuchy

What this post added

This post details the engineering challenges and solutions for building Facebook Chat, focusing on real-time presence notification and messaging. It addresses the inefficiency of naive presence updates and introduces XHR long polling (Comet) for real-time messaging, highlighting the limitations of Apache and the need for a custom solution. The post discusses the use of Erlang for an in-memory, epoll-driven web server for handling long-polled requests and C++ for a message logging subsystem, emphasizing their clustering and partitioning for reliability. It also explains the role of Thrift in enabling cross-language communication between PHP, JavaScript, Erlang, and C++. Finally, it describes the 'dark launch' strategy used to test and scale the system to millions of users before public release.

Read the original post ↗