Erlang Web Framework

Cuong Thai
www.htk-inc.com
bronzeboyvn@gmail.com
Content
1. Why Erlang?
●
●
●

concurrency
distributed
fault-tolerance

2. Are you kidding me?
●
●

10 times faster than PHP
c10k, 1000msg/sec, 24hours, 78Mb

3. Database-driven website.
Concurrency

Concurrency for our
web applications and
API backends means
that we'd like our
htop look like this
Concurrency

Erlang is easy capable of spawning hundreds of
thousands of processes on a single system running
on commodity hard-ware.
Distributed
You can have a number of machines across
net-work happily chatting with another.

Bill

Rick

Zoey

Daryl
Distributed
Process communication by copying
Location transparency (clustering)

Bill

Rick

Zoey

Daryl
Fault-tolerance
Fault-tolerance
Fault-tolerance
Fault-tolerance
Fault-tolerance
Are you kidding me?
“With PHP
framework you
typically see page
generation times
between 150 and
600 milliseconds.
Zotonic has a typical
page generation time
of 10 milliseconds or
less.”

How about you,
Chicago Boss?
siege -c15 http://localhost:8001/admin -b -t30s
** SIEGE 2.72
** Preparing 15 concurrent users for battle.
The server is now under siege...
Lifting the server siege...
Transactions:
Availability:

done.
21144 hits

100.00 %

Elapsed time:

29.12 secs

Data transferred:

116.59 MB

Response time:

0.02 secs

Transaction rate:

726.10 trans/sec

Throughput:

4.00 MB/sec

Concurrency:

14.98

Successful transactions:

21144

Failed transactions:

0

Longest transaction:

0.05

Shortest transaction:

0.00
siege -c150 http://localhost:8001/admin -b -t30s
** SIEGE 2.72
** Preparing 150 concurrent users for battle.
The server is now under siege...
Lifting the server siege...
Transactions:
Availability:

done.
20247 hits

100.00 %

Elapsed time:

29.32 secs

Data transferred:

111.64 MB

Response time:

0.22 secs

Transaction rate:

690.55 trans/sec

Throughput:

3.81 MB/sec

Concurrency:

149.36

Successful transactions:

20247

Failed transactions:

0

Longest transaction:

0.46

Shortest transaction:

0.01
Are you kidding me?

metabrew.com
Richard Jones co-founded and was CTO of last.fm for 6 years
Database-driven website
●

Hello World page

●

Hello World JSON

●

Hello World template

●

BossMQ
Q&A
Thank you for your attention!
Ref.
●

learnyousomeerlang.com

●

Erlang and OTP in action (Martin Logan, Eric Merritt, Richard Carlsson)

●

metabrew.com

●

infrequently.org/2006/03/comet-low-latency-data-for-the-browser/

●

zotonic.com/features

●

github.com/evanmiller/ChicagoBoss/wiki/An-Evening-With-Chicago-Boss

Barcamp2013

  • 1.
    Erlang Web Framework CuongThai www.htk-inc.com bronzeboyvn@gmail.com
  • 2.
    Content 1. Why Erlang? ● ● ● concurrency distributed fault-tolerance 2.Are you kidding me? ● ● 10 times faster than PHP c10k, 1000msg/sec, 24hours, 78Mb 3. Database-driven website.
  • 3.
    Concurrency Concurrency for our webapplications and API backends means that we'd like our htop look like this
  • 4.
    Concurrency Erlang is easycapable of spawning hundreds of thousands of processes on a single system running on commodity hard-ware.
  • 5.
    Distributed You can havea number of machines across net-work happily chatting with another. Bill Rick Zoey Daryl
  • 6.
    Distributed Process communication bycopying Location transparency (clustering) Bill Rick Zoey Daryl
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
    Are you kiddingme? “With PHP framework you typically see page generation times between 150 and 600 milliseconds. Zotonic has a typical page generation time of 10 milliseconds or less.” How about you, Chicago Boss?
  • 13.
    siege -c15 http://localhost:8001/admin-b -t30s ** SIEGE 2.72 ** Preparing 15 concurrent users for battle. The server is now under siege... Lifting the server siege... Transactions: Availability: done. 21144 hits 100.00 % Elapsed time: 29.12 secs Data transferred: 116.59 MB Response time: 0.02 secs Transaction rate: 726.10 trans/sec Throughput: 4.00 MB/sec Concurrency: 14.98 Successful transactions: 21144 Failed transactions: 0 Longest transaction: 0.05 Shortest transaction: 0.00
  • 14.
    siege -c150 http://localhost:8001/admin-b -t30s ** SIEGE 2.72 ** Preparing 150 concurrent users for battle. The server is now under siege... Lifting the server siege... Transactions: Availability: done. 20247 hits 100.00 % Elapsed time: 29.32 secs Data transferred: 111.64 MB Response time: 0.22 secs Transaction rate: 690.55 trans/sec Throughput: 3.81 MB/sec Concurrency: 149.36 Successful transactions: 20247 Failed transactions: 0 Longest transaction: 0.46 Shortest transaction: 0.01
  • 15.
    Are you kiddingme? metabrew.com Richard Jones co-founded and was CTO of last.fm for 6 years
  • 16.
    Database-driven website ● Hello Worldpage ● Hello World JSON ● Hello World template ● BossMQ
  • 17.
  • 18.
    Thank you foryour attention! Ref. ● learnyousomeerlang.com ● Erlang and OTP in action (Martin Logan, Eric Merritt, Richard Carlsson) ● metabrew.com ● infrequently.org/2006/03/comet-low-latency-data-for-the-browser/ ● zotonic.com/features ● github.com/evanmiller/ChicagoBoss/wiki/An-Evening-With-Chicago-Boss