(...) 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:
-
Stateless/stateful setups for web applications — what do these words mean?
-
CAP in brief, consistent hash rings for distributing work: what are the tradeoffs?
-
riak_core - what does it do? Paraphrasing Mariano Guerra’s excellent work.
-
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?
-
Loosely comparable systems in production/prior art - Microsoft Orleans, Facebook Scuba, others
Target audience: Intermediate+ Elixir programmers, web developers, students of distributed systems.