WhatsApp, the instant messaging service bought by Facebook last year for $US19 billion (£13 billion), now has 900 million monthly users globally. The cofounders, Jan Koum and Brian Acton, don’t often talk about their free instant messaging app but Acton agreed to do a rare interview with Wired, albeit over email.
In the interview with Wired’s Cade Metz, Acton explained why he and the 50-strong WhatsApp engineering team have been using two relatively unknown software development tools to build the world’s most popular messaging platform.
WhatsApp, which has billions of messages sent over its platform every day, has been built with the FreeBSD operating system and the Erlang programming language — two “great tools” in the eyes of Acton.
Acton said he and Koum opted for FreeBSD because they both used it when they were working at Yahoo and they’re relatively experienced with it.
“FreeBSD has a nicely tuned network stack and extremely good reliability,” said Acton. “We find managing FreeBSD installations to be quite straightforward.
“We came upon Erlang in a more indirect manner. Our original chat servers were built on Erlang, and we were able to leverage Erlang language features and evolve our service while at the same time maintaining very good uptime.
“Every step of the way, Erlang was rock solid and performant. I imagine that if we had come across significant hurdles or roadblocks along the way, we would have likely abandoned Erlang for a different language. Luckily, that never happened…”
Why not Linux?
Metz quizzed Acton on why he and Koum opted for FreeBSD over a more widely used operating system like Linux.
Acton responded: “Linux is a beast of complexity. FreeBSD has the advantage of being a single distribution with an extraordinarily good ports collection.”
Metz also asked Acton why Erlang has been so beneficial to WhatsApp.
Acton responded: “Neither Jan nor I had any exposure to Erlang before WhatsApp. Nevertheless, what we found is that language had solid foundations in industry, and it has served us well. It is true that Erlang is designed for near real-time communications. That said, Erlang is a generally good and useful general purpose language.
“There was serious thought and consideration that went into its construction. As one example, we’ve seen great benefits in high concurrency situations. We’ve also seen the ability to maintain great uptime as part of its hot code loading capabilities.”
Business Insider Emails & Alerts
Site highlights each day to your inbox.