Skip to content

Instantly share code, notes, and snippets.

@plamb
Last active August 29, 2015 14:27
Show Gist options
  • Save plamb/7bce2df4dd75e0d4b6e0 to your computer and use it in GitHub Desktop.
Save plamb/7bce2df4dd75e0d4b6e0 to your computer and use it in GitHub Desktop.

Just a few thoughts and links that didn't get into the already massively overtime talk.

#Phoenix Showdown Benchmark

https://github.com/mroth/phoenix-showdown

The google-cloud based tests did not acheive the same numbers that were published with the Rackspace setup (I followed their methodology and used the same wrk test loads). You'd need quite a few more client connections than they used to get there. Neither Phoenix nor Rails used more than 50% of the cpu available.

On my own bare-metal test server (E5-2620 v1, 128GB ram) I see a 16.75x difference between Phoenix and Rails request/second. [I did deviate from the showdown and pushed the load until I started getting errors.]

The Plug version is worth looking at since it shows just how stripped down you can go.

#Where To Go Next Both José and Chris's talks from NDC 2015 should be your next stops. The documentation at elixir-lang.com is worth the time. Programming Elixir by Dave Thomas is the standard goto book.

Idioms for building distributed fault-tolerant applications w/ Elixir - José Valim

Phoenix - a framework for the modern web - Chris Mccord

Programming Elixir: Functional |> Concurrent |> Pragmatic |> Fun

Phoenix Guides - Wealth of information.

Sample Phoenix Chat App

The Slack & irc channels are active and I'm amazed at how quickly people respond on twitter. @chrismccord follows the @elixirphoenix closely and responds quickly.

Elixir Sips is worth the $9 month. They are short, focused and often results in the 'ah, that's how I need to do that' moments.

If you get stuck, feel free to let me know.

#My Own Experiences My web app is not deployed yet (long boring story) but is getting very close. We have used Elixir in a backend ETL processes that run nightly since January. The use of pattern matching in the function definition makes the code much easier to read and follow.

As I said, the biggest issues is thinking too much in Ruby/Rails terms and not enough in functional terms. The fact that I've spent a couple of years doing functional programming helps but isn't required at all. I really like that Elixir allows you to enter the functional world incrementally. Just don't think this is Ruby/Rails on Erlang, those similarities are only skin deep.

#Where Not To Use Elixir Elixir/Erlang isn't for every problem. Compute intensive apps should stick to native code and gpu offload. GUI's don't do well either. Web apps fit Elixir/Erlang especially well.

#Exlir Conf - Austin Elixir Conf happens at the beinging of October in Austin. Tickets are still available. [It's also held across the street from the best camera store outside NYC. There's also training the day before, I'm going to Chris McChord's one on Advanced Phoenix.]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment