Chat free no nothing dom of religion and accommodating religious dress in schools
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.Unlike a three-guys-in-a-garage startup, we don't have the luxury of scaling out infrastructure to keep pace with user growth; when your feature's userbase will go from 0 to 70 million practically overnight, scalability has to be baked in from the start.The project I'm currently working on, Facebook Chat, offered a nice set of software engineering challenges: The most resource-intensive operation performed in a chat system is not sending messages.It is rather keeping each online user aware of the online-idle-offline states of their friends, so that conversations can begin.Cache misses and database failure can be detected by the non-database layers and either reported to the user or worked around using replication.
Both subsystems are clustered and partitioned for reliability and efficient failover. In short, because the problem domain fits Erlang like a glove.
Fault tolerance is a desirable characteristic of any big system: if an error happens, the system should try its best to recover without human intervention before giving up and informing the user.