Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Brief Intro to Phoenix - Elixir Meetup at BukaLapak

Brief Intro to Phoenix - Elixir Meetup at BukaLapak

Brief introduction to Phoenix, Elixir web framework. Phoenix web framework is awesome. Backed by the beauty and productive Elixir and performance and realibility of Erlang VM. This presentation is for Lambda Jakarte meetup chapter Elixir at BukaLapak, April 2016.

http://www.meetup.com/Lambda-Jakarta/events/230464443/

Riza Fahmi

April 25, 2016
Tweet

More Decks by Riza Fahmi

Other Decks in Technology

Transcript

  1. INTRODUCTION YOU’RE MY REGULATOR, MY COMPILER ▸ Scream when things

    go too fast / slow / are unclear ▸ Scream when cool things happen ▸ Help me when live coding, I’m suck at it. Find errors for me before the compiler do ▸ Similar to Phoenix channel, this is two way communication channel. Don’t let me do all the talking!
  2. INTRODUCTION WHO AM I ▸ Was at CitizenLab, a Belgium-based

    early stage startup. As a CTO ▸ Now at Hacktiv8, a startup for dev bootcamp ▸ Run ElixirDose — an Elixir-focused blog since November 2013
  3. INTRODUCTION WHAT WE’LL SEE ▸ The Awesomeness of Phoenix ▸

    Build something with Phoenix ▸ Some live coding
  4. “IF I HAVE TO BUILD SKYNET, KILLER ARTIFICIAL INTELLIGENT FROM

    TERMINATOR MOVIES, I WOULD USE ERLANG AND ERLANG VM. MOSTLY BECAUSE IT’S UNKILLABLE AND KEEP COMING BACK!” Simon St.Laurent from MostlyErlang Podcast
  5. FEATURES STATIC BUILD TOOLS WITH ES6 AS DEFAULT Ultra fast

    HTML5 build tools Compiles/lints your scripts and styles Concatenates your scripts and styles Minifies it Watches for file changes
  6. FEATURES CHANNELS ▸ The main reason why Phoenix exists in

    the first place ▸ It’s websocket with steroid ▸ Cross-platform, cross-languages ▸ For creating modern, real-time apps ▸ Beyond HTML
  7. PERFORMANCE VIEWS & TEMPLATES ▸ Precompiled and pretty fast! ▸

    Views render templates ▸ It’s beyond HTML
  8. PERFORMANCE WHAT ABOUT SOME BENCHMARK Frameworks Throughput (req/s) Latency (ms)

    Plug (Elixir) 54,948.14 3.83 Gin (Go) 51,483.20 1.94 Phoenix (Elixir) 43,063.45 2.82 Express Cluster (Nodejs) 27,669.46 3.73 Martini (Go) 14,798.46 6.81 Express (Nodejs) 9,965.56 10.07 Sinatra (Ruby) 9,182.86 6.55 Rails (Ruby) 3,274.81 17.25 https://github.com/mroth/phoenix-showdown
  9. PERFORMANCE ROBUST CONCURRENCY MODEL ▸ “processes” is extremely lightweight units

    of concurrency ▸ Garbage collection is per process, no global pauses
  10. “ WE DO NOT HAVE ONE WEB-SERVER HANDLING 2 MILLIONS

    SESSIONS. WE HAVE 2 MILLION WEBSERVERS HANDLING ONE SESSION EACH.” Joe Armstrong - Erlang Father http://goo.gl/DprVTC
  11. WHAT WE’LL BUILD ELIXIR TALKS VIDEO PORTAL ▸ CRUD app

    for collecting Elixir-related video talk ▸ Similar confreaks.tv or pyvideo.org