Chat request for sex kazakhstan muslim dating

Erlang is a functional concurrency-oriented language with extremely low-weight user-space "processes", share-nothing message-passing semantics, built-in distribution, and a "crash and recover" philosophy proven by two decades of deployment on large soft-realtime production systems.Despite those advantages, using Erlang for a component of Facebook Chat had a downside: that component needed to communicate with the other parts of the system.

Chat request for sex-76Chat request for sex-16Chat request for sex-13

The way this is typically accomplished in a web application is by separating the model and the view: data is persisted in a database (perhaps with a separate in-memory cache), with each short-lived request retrieving only the parts relevant to that request.

Because the data is persisted, a failed read request can be re-attempted.

Glueing together PHP, Javascript, Erlang, and C is not a trivial matter. Thrift translates a service description into the RPC glue code necessary for making cross-language calls (marshalling arguments and responses over the wire) and has templates for servers and clients.

Since going open source a year ago (we had the gall to release it on April Fool's Day, 2007), the Thrift project has steadily grown and improved (with multiple iterations on the Erlang binding).

The method we chose to get text from one user to another involves loading an iframe on each Facebook page, and having that iframe's Javascript make an HTTP GET request over a persistent connection that doesn't return until the server has data for the client.

The request gets reestablished if it's interrupted or times out.

Having Thrift available freed us to split up the problem of building a chat system and use the best available tool to approach each sub-problem.

The secret for going from zero to seventy million users overnight is to avoid doing it all in one fell swoop.

One of the things I like most about working at Facebook is the ability to launch products that are (almost) immediately used by millions of people.

Tags: , ,