erlang - goto bloggotocon.com/dl/...hoffmann_2014-gotonight-erlang.pdf · erlang! the driver behind...

303
Erlang The Driver behind WhatsApp’s Success Torben Hoffmann CTO, Erlang Solutions [email protected] @LeHoff

Upload: dothuy

Post on 30-Jan-2018

270 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Erlang The Driver behind WhatsApp’s Success

Torben Hoffmann CTO, Erlang Solutions

[email protected] @LeHoff

Page 2: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Background

Page 3: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Background

Erlanger since 2006

Page 4: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Background

Erlanger since 2006

Happyness

Page 5: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Background

Erlanger since 2006

Happyness

Mission critical gateway for Tetra

Page 6: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Background

Erlanger since 2006

Happyness

Mission critical gateway for Tetra

Hard work

Page 7: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Background

Erlanger since 2006

Happyness

Mission critical gateway for Tetra

Hard work

Major learnings

Page 8: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Background

Erlanger since 2006

Happyness

Mission critical gateway for Tetra

Hard work

Major learnings

Page 9: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Why this talk?

Page 10: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Why this talk?

Explain the tech foundation for WhatsApp’s succes

Page 11: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Why this talk?

Explain the tech foundation for WhatsApp’s succes

Understand the design decisions that makes Erlang unique

Page 12: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Why this talk?

Explain the tech foundation for WhatsApp’s succes

Understand the design decisions that makes Erlang unique

Show how Erlang’s features delivers business value

Page 13: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Why this talk?

Explain the tech foundation for WhatsApp’s succes

Understand the design decisions that makes Erlang unique

Show how Erlang’s features delivers business value

Spread the Erlang love

Page 14: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Religious Connection

source:http://www.taoistsecret.com/taoistgod.html

Er Lang Shen - Chinese God w/!a 3rd truth seeing eye

source: http://www.tripadvisor.com/Attraction_Review-g1152320-d1799218-Reviews-Erlang_Temple-Zunhua_Hebei.html

Erlang Temple in Zunhua

Page 15: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Dealing with disbelievers…

Source: http://2.bp.blogspot.com/-qNM3LGTtUYM/UIFLJGd_MLI/AAAAAAAAAnU/GCtI5SYfbCs/s320/orc-army.jpg

source: http://asset3.cbsistatic.com/cnwk.1d/i/tim2/2013/08/12/Larry_Ellison_Oracle_Open_World_2009_610x407.jpg

source: http://images1.wikia.nocookie.net/__cb20110119125642/villains/images/e/ef/Saruman.jpg

Page 16: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Dealing with disbelievers…

Source: http://2.bp.blogspot.com/-qNM3LGTtUYM/UIFLJGd_MLI/AAAAAAAAAnU/GCtI5SYfbCs/s320/orc-army.jpg

source: http://asset3.cbsistatic.com/cnwk.1d/i/tim2/2013/08/12/Larry_Ellison_Oracle_Open_World_2009_610x407.jpg

source: http://images1.wikia.nocookie.net/__cb20110119125642/villains/images/e/ef/Saruman.jpg

Page 17: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Dealing with disbelievers…

Source: http://2.bp.blogspot.com/-qNM3LGTtUYM/UIFLJGd_MLI/AAAAAAAAAnU/GCtI5SYfbCs/s320/orc-army.jpg

source: http://www.rottentomatoes.com/m/1014027-mission/

source: http://asset3.cbsistatic.com/cnwk.1d/i/tim2/2013/08/12/Larry_Ellison_Oracle_Open_World_2009_610x407.jpg

source: http://images1.wikia.nocookie.net/__cb20110119125642/villains/images/e/ef/Saruman.jpg

Page 18: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!
Page 19: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Founded in 1999 soon after Erlang was released as open source

Page 20: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Founded in 1999 soon after Erlang was released as open source

Experts at building bespoke scalable, high availability, high performance systems

Page 21: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Founded in 1999 soon after Erlang was released as open source

Experts at building bespoke scalable, high availability, high performance systems

Only company of its kind totally focused on Erlang and Erlang community

Page 22: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Founded in 1999 soon after Erlang was released as open source

Experts at building bespoke scalable, high availability, high performance systems

Only company of its kind totally focused on Erlang and Erlang community

Over 300 clients.

Page 23: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Founded in 1999 soon after Erlang was released as open source

Experts at building bespoke scalable, high availability, high performance systems

Only company of its kind totally focused on Erlang and Erlang community

Over 300 clients.

Headquartered in London, U.K.

Page 24: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Founded in 1999 soon after Erlang was released as open source

Experts at building bespoke scalable, high availability, high performance systems

Only company of its kind totally focused on Erlang and Erlang community

Over 300 clients.

Headquartered in London, U.K.

Offices: Stockholm, Krakow, Copenhagen, Aarhus, Budapest, Seattle and Zurich

Page 25: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Founded in 1999 soon after Erlang was released as open source

Experts at building bespoke scalable, high availability, high performance systems

Only company of its kind totally focused on Erlang and Erlang community

Over 300 clients.

Headquartered in London, U.K.

Offices: Stockholm, Krakow, Copenhagen, Aarhus, Budapest, Seattle and Zurich

Organically growing and continually investing in R & D

Page 26: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Founded in 1999 soon after Erlang was released as open source

Experts at building bespoke scalable, high availability, high performance systems

Only company of its kind totally focused on Erlang and Erlang community

Over 300 clients.

Headquartered in London, U.K.

Offices: Stockholm, Krakow, Copenhagen, Aarhus, Budapest, Seattle and Zurich

Organically growing and continually investing in R & D

Page 27: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Core focus

Page 28: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Core focus

Speed to market

Page 29: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Core focus

Speed to market

Low lifetime cost

Page 30: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Core focus

Speed to market

Low lifetime cost

Extreme reliability

Page 31: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Core focus

Speed to market

Low lifetime cost

Extreme reliability

True scalability

Page 32: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Core focus

Speed to market

Low lifetime cost

Extreme reliability

True scalability

Page 33: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

University Relations

Page 34: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

CustomersSome

Page 35: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

CustomersSome

19,000,000,000 reasons to use Erlang

Page 36: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

WhatsApp

Real-time Messaging

Text and Pictures

Group chat

Page 37: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

WhatsApp Numbers

Page 38: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

WhatsApp Numbers

10 Erlang engineers

Page 39: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

WhatsApp Numbers

10 Erlang engineers

~500M monthly users

Page 40: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

WhatsApp Numbers

10 Erlang engineers

~500M monthly users

19B msg/day in / 40B msg/day out

Page 41: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

WhatsApp Numbers

10 Erlang engineers

~500M monthly users

19B msg/day in / 40B msg/day out

147M concurrent connections

Page 42: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

WhatsApp Numbers

10 Erlang engineers

~500M monthly users

19B msg/day in / 40B msg/day out

147M concurrent connections

peak: 324K msg/s in / 712K msg/s out

Page 43: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

WhatsApp Numbers

10 Erlang engineers

~500M monthly users

19B msg/day in / 40B msg/day out

147M concurrent connections

peak: 324K msg/s in / 712K msg/s out

Page 44: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

WhatsApp Hardware

~550 servers

2x2690v2 Ivy Bridge 10-core (40 threads total)

64-512 GB RAM

SSD

>11,000 cores

Page 45: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

WhatsApp Software

FreeBSD 9.2

Erlang R16B01 (with patches)

Page 46: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Other Users of Erlang

Page 47: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Bet365

Page 48: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Bet365

Resarch team Re-did a Java system in Erlang as a POC

Page 49: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Bet365

Resarch team Re-did a Java system in Erlang as a POC

Results:

5x connected users in load test

4x rate of data change

Better utilisation of CPU resources

Page 50: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Bet365

Resarch team Re-did a Java system in Erlang as a POC

Results:

5x connected users in load test

4x rate of data change

Better utilisation of CPU resources

How to convince the developers to switch?

Page 51: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Bet365 showed that Erlang…

https://www.erlang-solutions.com/resources/webinars/webinar-recording-erlang-gamblingonline-betting

Page 52: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Bet365 showed that Erlang…

makes programming fun

https://www.erlang-solutions.com/resources/webinars/webinar-recording-erlang-gamblingonline-betting

Page 53: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Bet365 showed that Erlang…

makes programming fun

scales and is reliable

https://www.erlang-solutions.com/resources/webinars/webinar-recording-erlang-gamblingonline-betting

Page 54: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Bet365 showed that Erlang…

makes programming fun

scales and is reliable

has enough depth to be interesting

https://www.erlang-solutions.com/resources/webinars/webinar-recording-erlang-gamblingonline-betting

Page 55: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Bet365 showed that Erlang…

makes programming fun

scales and is reliable

has enough depth to be interesting

solves difficult problems with simple code

https://www.erlang-solutions.com/resources/webinars/webinar-recording-erlang-gamblingonline-betting

Page 56: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Bet365 showed that Erlang…

makes programming fun

scales and is reliable

has enough depth to be interesting

solves difficult problems with simple code

Results:

https://www.erlang-solutions.com/resources/webinars/webinar-recording-erlang-gamblingonline-betting

Page 57: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Bet365 showed that Erlang…

makes programming fun

scales and is reliable

has enough depth to be interesting

solves difficult problems with simple code

Results:

production teams quickly started to appreciate the benefits of Erlang

https://www.erlang-solutions.com/resources/webinars/webinar-recording-erlang-gamblingonline-betting

Page 58: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Bet365 showed that Erlang…

makes programming fun

scales and is reliable

has enough depth to be interesting

solves difficult problems with simple code

Results:

production teams quickly started to appreciate the benefits of Erlang

did not want to go back to Javahttps://www.erlang-solutions.com/resources/webinars/webinar-recording-erlang-gamblingonline-betting

Page 59: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Bet365 showed that Erlang…

makes programming fun

scales and is reliable

has enough depth to be interesting

solves difficult problems with simple code

Results:

production teams quickly started to appreciate the benefits of Erlang

did not want to go back to Javahttps://www.erlang-solutions.com/resources/webinars/webinar-recording-erlang-gamblingonline-betting

Page 60: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Riak from Basho

Distributed NoSQL database

Dynamo inspired key/value store

Erlang & C/C++

Powers Rovio, Danish Health Services and many more

Page 61: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Erlang History

Page 62: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

There are two ways of constructing a software design:

Page 63: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

One way is to make it so simple that there are obviously no deficiencies

There are two ways of constructing a software design:

Page 64: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.

There are two ways of constructing a software design:

Page 65: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.

- C.A.R. Hoare

There are two ways of constructing a software design:

Page 66: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Erlang’s Original Requirements

Page 67: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Erlang’s Original Requirements

Large scale concurrency

Page 68: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Erlang’s Original Requirements

Large scale concurrency

Soft real-time

Page 69: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Erlang’s Original Requirements

Large scale concurrency

Soft real-time

Distributed systems

Page 70: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Erlang’s Original Requirements

Large scale concurrency

Soft real-time

Distributed systems

Hardware interaction

Page 71: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Erlang’s Original Requirements

Large scale concurrency

Soft real-time

Distributed systems

Hardware interaction

Very large software systems

Page 72: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Erlang’s Original Requirements

Large scale concurrency

Soft real-time

Distributed systems

Hardware interaction

Very large software systems

Complex functionality

Page 73: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Erlang’s Original Requirements

Large scale concurrency

Soft real-time

Distributed systems

Hardware interaction

Very large software systems

Complex functionality

Continuous operation for many years

Page 74: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Erlang’s Original Requirements

Large scale concurrency

Soft real-time

Distributed systems

Hardware interaction

Very large software systems

Complex functionality

Continuous operation for many years

Software maintenance on-the-fly

Page 75: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Erlang’s Original Requirements

Large scale concurrency

Soft real-time

Distributed systems

Hardware interaction

Very large software systems

Complex functionality

Continuous operation for many years

Software maintenance on-the-fly

High quality and reliability

Page 76: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Erlang’s Original Requirements

Large scale concurrency

Soft real-time

Distributed systems

Hardware interaction

Very large software systems

Complex functionality

Continuous operation for many years

Software maintenance on-the-fly

High quality and reliability

Fault tolerance Bjarne Däcker’s Licentiate Thesis: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.88.1957

Page 77: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

wanted

Page 78: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

wantedproductivity

Page 79: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

wantedproductivity

no down-time

Page 80: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

wantedproductivity

no down-time

something that always works

Page 81: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

wanted

Page 82: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

wanted

money

Page 83: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

wanted

money

money

Page 84: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

wanted

money

money

money

Page 85: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

wanted

money

money

money

it’s a rich man’s world!

Page 86: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

wanted

money

money

money

it’s a rich man’s world!

Page 87: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

General vs Domain Specific

Telecom

Page 88: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

General vs Domain Specific

Telecom

C++/Java

Page 89: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

General vs Domain Specific

Telecom

C++/Java

Page 90: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

General vs Domain Specific

Telecom

Erlang

C++/Java

Page 91: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

General vs Domain Specific

Telecom

Erlang

C++/Java

Page 92: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

General vs Domain Specific

Telecom

Erlang

C++/Java

Smaller gap =

money!

Page 93: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

The Sweet SpotGUI

Drivers

Middleware Coordination

Control

Page 94: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

If the glove fits...

drivers coordination GUI

needs/fit

Page 95: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

If the glove fits...

drivers coordination GUI

needs/fitTelecom

Page 96: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

If the glove fits...

drivers coordination GUI

needs/fit

C

Telecom

Page 97: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

If the glove fits...

drivers coordination GUI

needs/fit

C

Erlang

Telecom

Page 98: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

If our basic tool, the language in which we design and code our programs, is also complicated, the language itself becomes part of the problem rather than part of its solution. !

- C.A.R. Hoare

Page 99: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Good Erlang Domains

Page 100: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Good Erlang Domains

Low latency over throughput

Page 101: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Good Erlang Domains

Low latency over throughput

Stateful (in contrast to being stateless)

Page 102: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Good Erlang Domains

Low latency over throughput

Stateful (in contrast to being stateless)

Massively concurrent

Page 103: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Good Erlang Domains

Low latency over throughput

Stateful (in contrast to being stateless)

Massively concurrent

Distributed

Page 104: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Good Erlang Domains

Low latency over throughput

Stateful (in contrast to being stateless)

Massively concurrent

Distributed

Fault tolerant

Page 105: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Good Erlang Domains

Low latency over throughput

Stateful (in contrast to being stateless)

Massively concurrent

Distributed

Fault tolerant

Uses OTP

Page 106: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Good Erlang Domains

Low latency over throughput

Stateful (in contrast to being stateless)

Massively concurrent

Distributed

Fault tolerant

Uses OTP

Non-stop operation

Page 107: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Good Erlang Domains

Low latency over throughput

Stateful (in contrast to being stateless)

Massively concurrent

Distributed

Fault tolerant

Uses OTP

Non-stop operation

Under load, Erlang programs usually performs as well as programs in other languages, often way better.

Jesper Louis Andersen

Page 108: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Other Erlang Domains

Page 109: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Other Erlang Domains

Messaging - XMPP et al

Page 110: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Other Erlang Domains

Messaging - XMPP et al

ejabberd, MongooseIM

Page 111: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Other Erlang Domains

Messaging - XMPP et al

ejabberd, MongooseIM

Webservers

Page 112: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Other Erlang Domains

Messaging - XMPP et al

ejabberd, MongooseIM

Webservers

Yaws, Chicago Boss, Cowboy

Page 113: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Other Erlang Domains

Messaging - XMPP et al

ejabberd, MongooseIM

Webservers

Yaws, Chicago Boss, Cowboy

Payment switches & soft switches

Page 114: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Other Erlang Domains

Messaging - XMPP et al

ejabberd, MongooseIM

Webservers

Yaws, Chicago Boss, Cowboy

Payment switches & soft switches

Vocalink, OpenFlow/LINC

Page 115: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Other Erlang Domains

Messaging - XMPP et al

ejabberd, MongooseIM

Webservers

Yaws, Chicago Boss, Cowboy

Payment switches & soft switches

Vocalink, OpenFlow/LINC

Distributed Databases

Page 116: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Other Erlang Domains

Messaging - XMPP et al

ejabberd, MongooseIM

Webservers

Yaws, Chicago Boss, Cowboy

Payment switches & soft switches

Vocalink, OpenFlow/LINC

Distributed Databases

Riak, CouchDB, Scalaris

Page 117: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Other Erlang Domains

Messaging - XMPP et al

ejabberd, MongooseIM

Webservers

Yaws, Chicago Boss, Cowboy

Payment switches & soft switches

Vocalink, OpenFlow/LINC

Distributed Databases

Riak, CouchDB, Scalaris

Queueing systems

Page 118: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Other Erlang Domains

Messaging - XMPP et al

ejabberd, MongooseIM

Webservers

Yaws, Chicago Boss, Cowboy

Payment switches & soft switches

Vocalink, OpenFlow/LINC

Distributed Databases

Riak, CouchDB, Scalaris

Queueing systems

RabbitMQ (AMQP)

Page 119: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

The glove fits!

Low latency Stateful Massively

concurrent Distributed Fault tolerant

Messaging

Webservers

Soft switches

Distributed DBs

Queueing systems

Page 120: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

The Golden Trinity Of Erlang

Page 121: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

To Share Or Not To Share

Page 122: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

To Share Or Not To Share

Memory

Page 123: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

To Share Or Not To Share

Memory

P1

Page 124: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

To Share Or Not To Share

Memory

P1 P2

Page 125: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

To Share Or Not To Share

Memory

P2

Corrupt

Page 126: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

To Share Or Not To Share

MemoryCorrupt

Page 127: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

To Share Or Not To Share

Memory MemoryCorrupt

Page 128: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

To Share Or Not To Share

Memory Memory

P1

Corrupt

Page 129: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

To Share Or Not To Share

Memory Memory Memory

P1

Corrupt

Page 130: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

To Share Or Not To Share

Memory Memory Memory

P1 P2

Corrupt

Page 131: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

To Share Or Not To Share

Memory Memory

P2

Corrupt Corrupt

Page 132: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

To Share Or Not To Share

Memory Memory

P2

Corrupt

Page 133: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Message Passing

P1 P2M

P1 sends M to P2.

Page 134: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Message Passing

P1 P2M

P1 sends M to P2.

Every process has a mailbox

Page 135: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Message Passing

P1 P2M

P1 sends M to P2.

Every process has a mailbox

Messages are received:receive {tag, Value} -> Value; N when is_integer(N) -> N + 42

end

Page 136: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

FailuresAnything that can go wrong, will go wrong

Murphy

Page 137: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

FailuresAnything that can go wrong, will go wrong

MurphyProgramming errors

Page 138: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

FailuresAnything that can go wrong, will go wrong

MurphyProgramming errorsDisk failures

Page 139: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

FailuresAnything that can go wrong, will go wrong

MurphyProgramming errorsDisk failuresNetwork failures

Page 140: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Failures

Most programming paradigmes are fault in-tolerant

Anything that can go wrong, will go wrong

MurphyProgramming errorsDisk failuresNetwork failures

Page 141: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Failures

Most programming paradigmes are fault in-tolerant ⇒ must deal with all errors or die

Anything that can go wrong, will go wrong

MurphyProgramming errorsDisk failuresNetwork failures

Page 142: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Failures

Most programming paradigmes are fault in-tolerant ⇒ must deal with all errors or die

Anything that can go wrong, will go wrong

MurphyProgramming errorsDisk failuresNetwork failures

Page 143: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Failures

Most programming paradigmes are fault in-tolerant ⇒ must deal with all errors or die

Anything that can go wrong, will go wrong

MurphyProgramming errorsDisk failuresNetwork failures

Erlang is fault tolerant by design

Page 144: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Failures

Most programming paradigmes are fault in-tolerant ⇒ must deal with all errors or die

Anything that can go wrong, will go wrong

MurphyProgramming errorsDisk failuresNetwork failures

Erlang is fault tolerant by design ⇒ failures are embraced and

managed

Page 145: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Failures

Most programming paradigmes are fault in-tolerant ⇒ must deal with all errors or die

Anything that can go wrong, will go wrong

MurphyProgramming errorsDisk failuresNetwork failures

Erlang is fault tolerant by design ⇒ failures are embraced and

managed

source: http://johnkreng.wordpress.com/tag/jean-claude-van-damme/source: http://www.thelmagazine.com/BrooklynAbridged/archives/2013/05/14/should-we-be-worried-about-this-brooklyn-measles-outbreak

Page 146: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Let It Failconvert(monday) -> 1;!convert(tuesday) -> 2;!convert(wednesday) -> 3;!convert(thursday) -> 4;!convert(friday) -> 5; !convert(saturday) -> 6;!convert(sunday) -> 7! ;!convert(_) ->! {error, unknown_day}.!

Page 147: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Let It Failconvert(monday) -> 1;!convert(tuesday) -> 2;!convert(wednesday) -> 3;!convert(thursday) -> 4;!convert(friday) -> 5; !convert(saturday) -> 6;!convert(sunday) -> 7! .!!

Page 148: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Let It Failconvert(monday) -> 1;!convert(tuesday) -> 2;!convert(wednesday) -> 3;!convert(thursday) -> 4;!convert(friday) -> 5; !convert(saturday) -> 6;!convert(sunday) -> 7!

Erlang encourages offensive programming

.!!

Page 149: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Handling Failure

P1 P2

P1 monitors P2.

P1 P2

P1 and P2 are linked.

Page 150: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Intentional Programming

a style of programming where the reader of a program can easily see what the programmer intended by their code. [1]

[1] http://www.erlang.org/download/armstrong_thesis_2003.pdf

Page 151: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Intentional Dictionary data retrieval - dict:fetch(Key, Dict) = Val | EXIT

the programmer knows a specific key should be in the dictionary and it is an error if it is not.

search - dict:find(Key, Dict) = {ok, Val} | error.

it is unknown if the key is there or not and both cases must be dealt with.

test - dict:is_key(Key, Dict) = Boolean

knowing if a key is present is enough.

Page 152: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Benefits of let-it-fail

Source:  h*p://www.slideshare.net/JanHenryNystrom/produc;vity-­‐gains-­‐in-­‐erlang

Data  Mobility  component  breakdown

Page 153: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Benefits of let-it-fail

code  that  solves    the  problem

Source:  h*p://www.slideshare.net/JanHenryNystrom/produc;vity-­‐gains-­‐in-­‐erlang

Data  Mobility  component  breakdown

Page 154: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Benefits of let-it-fail

code  that  solves    the  problem

Source:  h*p://www.slideshare.net/JanHenryNystrom/produc;vity-­‐gains-­‐in-­‐erlang

Data  Mobility  component  breakdown

Page 155: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Benefits of let-it-fail

code  that  solves    the  problem

Source:  h*p://www.slideshare.net/JanHenryNystrom/produc;vity-­‐gains-­‐in-­‐erlang

Data  Mobility  component  breakdown

Page 156: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Benefits of let-it-fail

code  that  solves    the  problem

Source:  h*p://www.slideshare.net/JanHenryNystrom/produc;vity-­‐gains-­‐in-­‐erlang

Data  Mobility  component  breakdown

Page 157: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Benefits of let-it-fail

code  that  solves    the  problem

Source:  h*p://www.slideshare.net/JanHenryNystrom/produc;vity-­‐gains-­‐in-­‐erlang

Data  Mobility  component  breakdown

Page 158: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Benefits of let-it-fail

code  that  solves    the  problem

Source:  h*p://www.slideshare.net/JanHenryNystrom/produc;vity-­‐gains-­‐in-­‐erlang

Data  Mobility  component  breakdown

Page 159: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Benefits of let-it-fail

code  that  solves    the  problem

Erlang  @  3xSource:  h*p://www.slideshare.net/JanHenryNystrom/produc;vity-­‐gains-­‐in-­‐erlang

Data  Mobility  component  breakdown

Page 160: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Productivity with Erlang @ Motorola

Goal: Development of a mission-critical telecom gateway for TETRA

To be developed from scratch using Erlang and some drivers in C

The gateway translates between proprietary protocols and the ISI standard

Developed using a two – six man team over four year

A total of 72 staff months used on the work

Page 161: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Productivity with Erlang @ Motorola

Internal  storage

input

input

input

inputoutput

output

output

Function point analysis Language agnostic measurement of problem size

Page 162: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Show me the money!

Conservative estimation of the number of inputs, outputs and internal storage

Includes design, box test, system test, project management efforts

Function Point Analysis of the size of the problem

Page 163: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Isolate Errors

Page 164: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

PROPAGATING EXIT SIGNALS

PidA PidB

PidC

Page 165: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

PROPAGATING EXIT SIGNALS

PidA PidB

PidC

Page 166: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

PROPAGATING EXIT SIGNALS

PidB

{'EXIT', PidA, Reason}

PidC

Page 167: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

PROPAGATING EXIT SIGNALS

PidB

PidC

Page 168: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

PROPAGATING EXIT SIGNALS

PidC

{'EXIT', PidB, Reason}

Page 169: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

PROPAGATING EXIT SIGNALS

Page 170: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

TRAPPING AN EXIT SIGNAL

PidA

PidC

PidB

Page 171: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

TRAPPING AN EXIT SIGNAL

PidA

PidC

PidB

Page 172: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

TRAPPING AN EXIT SIGNAL

{'EXIT', PidA, Reason}

PidC

PidB

Page 173: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

TRAPPING AN EXIT SIGNAL

PidC

PidB

Page 174: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

Supervision Trees

45

worker worker

worker workerworkerThe OTP library is

built on this principle

supervisor

supervisor

Page 175: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

The OTP Supervisor

46

worker workerworker

supervisor

Specifies a default restart strategyone_for_one one_for_all rest_for_one simple_one_for_one

Child spec for how a child is restartedpermanent | transient | temporary

Page 176: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Supervisors

Page 177: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Simple Manager/Worker Pattern

Page 178: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Realities of software development

Source: http://www.thejournal.ie/readme/lunch-atop-skyscraper-photo-men-irish-shanaglish-518110-Jul2012/

????

Page 179: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Realities of software development

Source: http://www.thejournal.ie/readme/lunch-atop-skyscraper-photo-men-irish-shanaglish-518110-Jul2012/

Product Owner

Page 180: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Business benefits of supervisors

Page 181: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Business benefits of supervisors

Only one process dies

Page 182: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Business benefits of supervisors

Only one process dies

isolation gives continuous service

Page 183: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Business benefits of supervisors

Only one process dies

isolation gives continuous service

Everything is logged

Page 184: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Business benefits of supervisors

Only one process dies

isolation gives continuous service

Everything is logged

you know what is wrong

Page 185: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Business benefits of supervisors

Only one process dies

isolation gives continuous service

Everything is logged

you know what is wrong

Corner cases can be fixed at leisure

Page 186: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Business benefits of supervisors

Only one process dies

isolation gives continuous service

Everything is logged

you know what is wrong

Corner cases can be fixed at leisure

Product owner in charge!

Page 187: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Business benefits of supervisors

Only one process dies

isolation gives continuous service

Everything is logged

you know what is wrong

Corner cases can be fixed at leisure

Product owner in charge!

Not the software!

Page 188: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Business benefits of supervisors

Only one process dies

isolation gives continuous service

Everything is logged

you know what is wrong

Corner cases can be fixed at leisure

Product owner in charge!

Not the software!

Software architecture that supports

iterative development

Page 189: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Preparing for battle

Source: http://www.finerareprints.com/print_detail.html?stock_no=17122

Page 190: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

When do I get my ROI?

Proto-typing Development Live

Speed

Page 191: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

When do I get my ROI?

Proto-typing Development Live

Speed

Some Cool Technology

Page 192: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

When do I get my ROI?

Proto-typing Development Live

Speed

Some Cool Technology

Erlang

Page 193: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

When do I get my ROI?

Live

Speed

Prot

o-typ

ing

Develo

pmen

t

Page 194: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

When do I get my ROI?

Live

Speed

Prot

o-typ

ing

Develo

pmen

t

Erlang

Page 195: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

When do I get my ROI?

Live

Speed

Prot

o-typ

ing

Develo

pmen

t

Erlang

Some Cool Technology

Page 196: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Erlang/OTP

Page 197: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Middleware

Page 198: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Middleware

Design Patterns

Page 199: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Middleware

Design Patterns

Fault Tolerance

Page 200: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Middleware

Design Patterns

Fault Tolerance

Distribution

Page 201: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Middleware

Design Patterns

Fault Tolerance

Distribution

Upgrades

Page 202: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Middleware

Design Patterns

Fault Tolerance

Distribution

Upgrades

Packaging

Page 203: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Middleware

Design Patterns

Fault Tolerance

Distribution

Upgrades

Packaging

Page 204: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

OTP Tools

Page 205: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

OTP Tools

Development

Page 206: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

OTP Tools

Development

Test Frameworks

Page 207: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

OTP Tools

Development

Test Frameworks

Release & Deployment

Page 208: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

OTP Tools

Development

Test Frameworks

Release & Deployment

Debugging & Monitoring

Page 209: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

OTP Benefits

Page 210: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

OTP Benefits

Less Code

Page 211: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

OTP Benefits

Less Code

Less Bugs

Page 212: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

OTP Benefits

Less Code

Less Bugs

More Solid Code

Page 213: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

OTP Benefits

Less Code

Less Bugs

More Solid Code

More Tested Code More Free Time

Page 214: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

SPECIFIC CALLBACK MODULE

GENERIC BEHAVIOUR

MODULE

Server

process

Behaviours

Page 215: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

OTP Behaviours

Page 216: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

OTP Behaviours

Servers

Page 217: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

OTP Behaviours

Servers

Finite State Machines

Page 218: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

OTP Behaviours

Servers

Finite State Machines

Event Handlers

Page 219: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

OTP Behaviours

Servers

Finite State Machines

Event Handlers

Supervisors

Page 220: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

OTP Behaviours

Servers

Finite State Machines

Event Handlers

Supervisors

Applications

Page 221: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Nasty Things Handled by OTP

Page 222: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Nasty Things Handled by OTP

Who are you gonna call?

Page 223: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Client Server

Page 224: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

call(Name, Message) ->! Name ! {request, self(), Message},! receive! {reply, Reply} -> Reply! end.

Client Server

{request, Pid, Message}

Page 225: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

call(Name, Message) ->! Name ! {request, self(), Message},! receive! {reply, Reply} -> Reply! end.

reply(Pid, Reply) ->! Pid ! {reply, Reply}.

Client Server

{request, Pid, Message}

{reply, Reply}

Page 226: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Client Server

{request, Pid, Message}

{reply, Reply}

Page 227: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Client Server

{request, Pid, Message}

{reply, Reply}

Server 2

Page 228: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Client Server

{request, Pid, Message}

{reply, Reply}

Server 2

{reply, Reply}

Page 229: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Client Server

{request, Pid, Message}

{reply, Reply}

Server 2

{reply, Reply}

call(Name, Msg) ->! Ref = make_ref(),! Name ! {request, {Ref, self()}, Msg},! receive {reply, Ref, Reply} -> Reply end.!!reply({Ref, Pid}, Reply) ->! Pid ! {reply, Ref, Reply}.

Page 230: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Client Server

Server 2

{reply, Reply}

call(Name, Msg) ->! Ref = make_ref(),! Name ! {request, {Ref, self()}, Msg},! receive {reply, Ref, Reply} -> Reply end.!!reply({Ref, Pid}, Reply) ->! Pid ! {reply, Ref, Reply}.

{request, {Ref, self()}, Message}

{reply, Ref, Reply}

Page 231: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Client Server

Server 2

call(Name, Msg) ->! Ref = make_ref(),! Name ! {request, {Ref, self()}, Msg},! receive {reply, Ref, Reply} -> Reply end.!!reply({Ref, Pid}, Reply) ->! Pid ! {reply, Ref, Reply}.

{request, {Ref, self()}, Message}

{reply, Ref, Reply}

{reply, ???, Reply}

Page 232: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

PidA PidB

Page 233: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

PidA PidB

{request, {Ref, PidA}, Msg}

Page 234: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

PidA

Page 235: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

PidA

call(Name, Msg) ->! Ref = erlang:monitor(process, Name),! Name ! {request, {Ref, self()}, Msg},! receive!! {reply, Ref, Reply} ->!! erlang:demonitor(Ref),!! Reply;!! {'DOWN', Ref, process, _Name, _Reason} ->!! {error, no_proc}! end.

Page 236: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

PidA PidB

Page 237: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

PidA PidB

{request, {Ref, PidA}, Msg}

Page 238: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

PidA PidB{reply, Ref, Reply}

Page 239: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

PidA

{'DOWN', Ref, process, PidB, Reason}

Page 240: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

PidA

call(Name, Msg) ->! Ref = erlang:monitor(process, Name),! Name ! {request, {Ref, self()}, Msg},! receive!! {reply, Ref, Reply} ->!! erlang:demonitor(Ref, [flush]),!! Reply;!! {'DOWN', Ref, process, _Name, _Reason} ->!! {error, no_proc}! end.

{'DOWN', Ref, process, PidB, Reason}

Page 241: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Dealing with deadlocks

Page 242: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Dealing with deadlocks

7 years of coding Erlang

Page 243: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Dealing with deadlocks

7 years of coding Erlang

Time spent on deadlock issues….

Page 244: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Dealing with deadlocks

7 years of coding Erlang

Time spent on deadlock issues….

1 hour (due to lack of experience with OTP)

Page 245: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Selling Others on Erlang

Page 246: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

In Theory...You conquer the TALC group by group in one smooth motion

66

Page 247: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

In Theory...You conquer the TALC group by group in one smooth motion

66

1

Page 248: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

In Theory...You conquer the TALC group by group in one smooth motion

66

12

Page 249: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

In Theory...You conquer the TALC group by group in one smooth motion

66

12

3

Page 250: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

In Theory...You conquer the TALC group by group in one smooth motion

66

12

3 4

Page 251: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

In Theory...You conquer the TALC group by group in one smooth motion

66

12

3 4

5

Page 252: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

In Theory...You conquer the TALC group by group in one smooth motion

66

12

3 4

5

but it’s just an illusion :-(

Page 253: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

Cracks and a Chasm

67

Page 254: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

Cracks and a Chasm

67

Technology enthusiasts

Page 255: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

Cracks and a Chasm

67

Technology enthusiasts

Visionaries

Page 256: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

Cracks and a Chasm

67

Technology enthusiasts

Visionaries

Pragmatists

Page 257: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

Cracks and a Chasm

67

Technology enthusiasts

Visionaries

PragmatistsConservatives

Page 258: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

Cracks and a Chasm

67

Technology enthusiasts

Visionaries

PragmatistsConservatives

Laggards

Page 259: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

Cracks and a Chasm

67

Technology enthusiasts

Visionaries

PragmatistsConservatives

Laggards

Crack

Page 260: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

Cracks and a Chasm

67

Technology enthusiasts

Visionaries

PragmatistsConservatives

Laggards

Crack

Crack

Page 261: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

Cracks and a Chasm

67

Technology enthusiasts

Visionaries

PragmatistsConservatives

Laggards

Crack

CrackChasm

Page 262: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

The Chasm

Page 263: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

The ChasmFrom Visionaries to Pragmatists

Page 264: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

The ChasmFrom Visionaries to Pragmatists

Visionaries buy a change agent to get a radical discontinuity

Page 265: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

The ChasmFrom Visionaries to Pragmatists

Visionaries buy a change agent to get a radical discontinuity

Pragmatists want a productivity improvement for existing operations

Page 266: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

The ChasmFrom Visionaries to Pragmatists

Visionaries buy a change agent to get a radical discontinuity

Pragmatists want a productivity improvement for existing operations

Pragmatists want evolution, not revolution

Page 267: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

The ChasmFrom Visionaries to Pragmatists

Visionaries buy a change agent to get a radical discontinuity

Pragmatists want a productivity improvement for existing operations

Pragmatists want evolution, not revolution

Pragmatists wants references

Page 268: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

Visionaries vs Pragmatists

69

Visionaries have four characteristics that alienate Pragmatists:

Page 269: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

Visionaries vs Pragmatists

Lack of respect for their colleagues’ experiences

69

Visionaries have four characteristics that alienate Pragmatists:

Page 270: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

Visionaries vs Pragmatists

Lack of respect for their colleagues’ experiences

Takes greater interest in technology than in their industry

69

Visionaries have four characteristics that alienate Pragmatists:

Page 271: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

Visionaries vs Pragmatists

Lack of respect for their colleagues’ experiences

Takes greater interest in technology than in their industry

Fail to recognise the importance of existing product infrastructure

69

Visionaries have four characteristics that alienate Pragmatists:

Page 272: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

Visionaries vs Pragmatists

Lack of respect for their colleagues’ experiences

Takes greater interest in technology than in their industry

Fail to recognise the importance of existing product infrastructure

Overall disruptiveness

69

Visionaries have four characteristics that alienate Pragmatists:

Page 273: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

Whole Product Planning

70

Generic Product

Standards &

Procedures Additional Software

System Integration

Training &

Support

Installation &

Debugging

Additional Hardware

Anything else to achieve your

compelling reason to buy

Simplified for chasm crossing

Page 274: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

Whole Product Planning

70

Generic Product

Standards &

Procedures Additional Software

System Integration

Training &

Support

Installation &

Debugging

Additional Hardware

Anything else to achieve your

compelling reason to buy

Simplified for chasm crossing

= marketing promise to win the sale

Page 275: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

Erlang Whole Product 1/2

Generic product:

Erlang compiler and runtime

Additional software:

rich library shipped with each release

many open source libraries

Training & support:

ESL provides many courses

ErlangCamp also provides training

71

Page 276: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

© 1999-2012 Erlang Solutions Ltd.

Erlang Whole Product 2/2

System integration:

mostly case-by-case

few public success stories

Installation & Debugging:

Adequate functionalities for installing applications

Wombat: ESL tool for Operations and Maintenance

Good debugging tools, but not well publicised

72

Page 277: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

The EuroVision Link

source: http://sawyerspeaks.com/wp-content/uploads/2011/04/larry_ellison_oracle_ceo.jpgsource: http://cache1.asset-cache.net/gc/489477445-conchita-wurst-of-austria-performs-on-stage-gettyimages.jpg?v=1&c=IWSAsset&k=2&d=X7WJLa88Cweo9HktRLaNXrTYXDJ3BsApHeprRdCRbmiAEiSzJ73mXeJ82T5OvCcz

source: http://i1.cdnds.net/14/19/618x411/uktv-eurovision-song-contest-2014-25.jpg

Or why Java is used more than Erlang…

Page 278: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

The EuroVision Link

source: http://sawyerspeaks.com/wp-content/uploads/2011/04/larry_ellison_oracle_ceo.jpgsource: http://cache1.asset-cache.net/gc/489477445-conchita-wurst-of-austria-performs-on-stage-gettyimages.jpg?v=1&c=IWSAsset&k=2&d=X7WJLa88Cweo9HktRLaNXrTYXDJ3BsApHeprRdCRbmiAEiSzJ73mXeJ82T5OvCcz

source: http://i1.cdnds.net/14/19/618x411/uktv-eurovision-song-contest-2014-25.jpg

Lots of wrapping

Or why Java is used more than Erlang…

Page 279: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

The EuroVision Link

source: http://sawyerspeaks.com/wp-content/uploads/2011/04/larry_ellison_oracle_ceo.jpgsource: http://cache1.asset-cache.net/gc/489477445-conchita-wurst-of-austria-performs-on-stage-gettyimages.jpg?v=1&c=IWSAsset&k=2&d=X7WJLa88Cweo9HktRLaNXrTYXDJ3BsApHeprRdCRbmiAEiSzJ73mXeJ82T5OvCcz

source: http://i1.cdnds.net/14/19/618x411/uktv-eurovision-song-contest-2014-25.jpg

Lots of wrapping The real McCoy

Or why Java is used more than Erlang…

Page 280: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Source: http://www.despair.com/mistakes.html

Page 281: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Learning Erlang

Page 283: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Learning Erlang

ESL training courses

Learn You Some Erlang

http://learnyousomeerlang.com/

Page 284: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Learning Erlang

ESL training courses

Learn You Some Erlang

http://learnyousomeerlang.com/

Use the erlang-questions mailing list

Page 285: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Learning Erlang

ESL training courses

Learn You Some Erlang

http://learnyousomeerlang.com/

Use the erlang-questions mailing list

Do it hands-on

Page 286: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Learning Erlang

ESL training courses

Learn You Some Erlang

http://learnyousomeerlang.com/

Use the erlang-questions mailing list

Do it hands-on

Give it time to sink in!!!

Page 287: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Elixir

Page 288: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Elixir

Built on top of the Erlang VM

Page 289: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Elixir

Built on top of the Erlang VM

More Ruby-like syntax

Page 290: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Elixir

Built on top of the Erlang VM

More Ruby-like syntax

Hygienic macros - easy to do DSLs

Page 291: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Elixir

Built on top of the Erlang VM

More Ruby-like syntax

Hygienic macros - easy to do DSLs

But… you still have to learn the Erlang programming model

Page 292: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Key building blocks

Page 293: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Key building blocks

Share nothing processes

Page 294: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Key building blocks

Share nothing processes

Message passing

Page 295: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Key building blocks

Share nothing processes

Message passing

Fail fast approach

Page 296: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Key building blocks

Share nothing processes

Message passing

Fail fast approach

Link/monitor concept

Page 297: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Key building blocks

Share nothing processes

Message passing

Fail fast approach

Link/monitor concept

You can deal with failures in a sensible manner because you have a language for them.

Page 298: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Cruising with Erlang

Page 299: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Cruising with Erlang

Understand the failure model

Page 300: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Cruising with Erlang

Understand the failure model

Embrace failure!

Page 301: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Cruising with Erlang

Understand the failure model

Embrace failure!

Use supervision patterns to deliver business value

Page 302: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Cruising with Erlang

Understand the failure model

Embrace failure!

Use supervision patterns to deliver business value

Stay in charge!

Page 303: Erlang - GOTO Bloggotocon.com/dl/...Hoffmann_2014-GotoNight-Erlang.pdf · Erlang! The Driver behind WhatsApp’s Success! Torben Hoffmann! CTO, Erlang Solutions! torben.hoffmann@erlang-solutions.com!

Cruising with Erlang

Understand the failure model

Embrace failure!

Use supervision patterns to deliver business value

Stay in charge!