Talk 38:00

(...) Phoenix on Riak_Core

Through Erlang, Elixir developers have access to some amazing tools for building resilient distributed systems. riak_core is one such tool: it provides the framework behind Riak’s high availability KV store. In this talk, I’d like to explore some unconventional architecture by using riak_core and Phoenix to build fault-tolerant stateful web applications. What happens when the app servers are also the database nodes? Can we avoid some of the traditional pitfalls of stateful servers? Is this a remotely good idea? Let’s take a look!

Talk objectives:

  1. Stateless/stateful setups for web applications — what do these words mean?

  2. CAP in brief, consistent hash rings for distributing work: what are the tradeoffs?

  3. riak_core - what does it do? Paraphrasing Mariano Guerra’s excellent work.

  4. Build a Phoenix application that cohabitates on a riak_core hash ring. What superpowers do we gain from this? What do we have to watch out for? Can we do cool tricks with load balancing or channels? In-memory databases for super-speedy responses?

  5. Loosely comparable systems in production/prior art - Microsoft Orleans, Facebook Scuba, others

Target audience: Intermediate+ Elixir programmers, web developers, students of distributed systems.