Building Distributed System with Elixir

In this talk, we will explore how can we write a distributed system with Elixir/Erlang. We will cover distributed systems basics, how a distributed system is capable of enhanced performance and how it gives us higher availability.

Then we would start with a demonstration of a distributed system written with Elixir programming language. We will spend most of the talk discussing the demo code.

We will also cover main advantages of Elixir/Erlang ecosystem to build distributed systems.

We will explore aspects such a latency, throughput, computing power. We will understand how Elixir is capable for fault tolerance, resilience. We will explore tool set provided by OTP library. What tools from library helps us to write a distributed system.

But distributed Erlang/Elixir *has known limitations*. For example, issues with when a network is fully meshed, how many numbers of nodes which can scale we get in a cluster, how sending large data over distribution is an issue etc. What are solutions for it?

 
3 favorite thumb_down thumb_up 0 comments visibility_off  Remove from Watchlist visibility  Add to Watchlist
 

Outline/structure of the Session

_ We will cover distributed systems basics, how this distributed system is capable of enhanced performance and how it gives us higher availability.demonstration of a distributed system written with Elixir programming language. We will spend most of the talk discussing this demo code.

The demo will cover ...

* Distribution primitives in Elixir/Erlang
* Message passing
* Nodes
* Cluster
* Starting cluster
* Creating nodes and communicating between those
* Process discovery
* Process registrations
* Global registry
* Links & monitors
* Cluster design (fault tolerant)
* Network partitions
* Dealing with partitions
* Distributed cache
* Implementing a replicated database
* Testing distributed system

- Points - Main advantages of Elixir/Erlang ecosystem to build distributed systems.

- Points - We will explore aspects such a latency, throughput, computing power. We will understand how Elixir is capable for fault tolerance, resilience.

- Points - Overview of tools provided OTP library. What tools from library helps us to write a distributed system.

- Know about known limitations of Erlang/Elixir ecosystem, what are solutions to overcome these limitations

Learning Outcome

Developers will get introduced to distributed systems concepts. They will also understand the power of Elixir/Erlang to easily build distributed systems.

Target Audience

Devs interested in building scalable distributed systems. Devs interested in basics of distributed system. Devs interested in learning about Elixir/Erlang ecosystem

Prerequisite

Devs should be familiar with basic practices to scale web applications which include load balancing, clustering, data base sharding, replication, distributed queues etc.

schedule Submitted 1 week ago

Comments Subscribe to Comments

comment Comment on this Proposal

  • Liked Dhaval Dalal
    keyboard_arrow_down

    Dhaval Dalal - Code Jugalbandi

    45 mins
    Demonstration
    Beginner

    In Indian classical music, we have Jugalbandi, where two lead musicians or vocalist engage in a playful competition. There is jugalbandi between Flutist and a Percussionist (say using Tabla as the instrument). Compositions rendered by flutist will be heard by the percussionist and will replay the same notes, but now on Tabla and vice-versa is also possible.

    In a similar way, we will perform Code Jugalbandi to see how the solution looks using different programming languages and paradigms.  This time the focus of code jugalbandi will be on solutioning in two different paradigms - functional programming and array-oriented paradigm.   

    During the session, Morten and Dhaval will take turns at coding the same problem using different languages and paradigms. There would be multiple such rounds during the Jugalbandi.

  • 20 mins
    Talk
    Beginner


    A lot of companies still decide to go with Node.js / Java / Ruby / Python for building web apps.

    In this talk, we will focus on, how Elixir ecosystem is ready to replace Node.js / Java / Ruby / Python for most of the web apps

    The aim of this talk is to present why Elixir lang is a good choice for building your next web app.

    We will explore some of the features and tool that Phoenix web framework provides that replaces the need of using Java / Node.js / Ruby / Python for web apps. e.g. Better concurrency model, Ecto for database interaction,  Phoenix channels, Simple APIs, Umbrella apps etc, Speed of development.

    The talk will have a deep comparison of the runtime of Node.js, JVM, Ruby/Python with Elixir runtime. (e.g. http://joearms.github.io/2013/04/02/Red-and-Green-Callbacks.html for comparing Erlang callbacks with JavaScript callbacks, Comparison of JVM with BEAM  http://ds.cs.ut.ee/courses/course-files/To303nis%20Pool%20.pdf etc)

    We will also compare syntaxes of these languages by seeing the code of the same app but with multiple languages.

    This talk will also show how using Elixir also helps us a become better programmer because of features like immutability, functions, pattern matching, first class processes etc, great syntax.

    At the end of the talk, every Java / Node.js / Ruby / Python developer should feel confident about Elixir and talk will motivate them to choose Elixir over Java / Node.js / Ruby / Python for building the next web app.

  • Liked Cameron Price
    keyboard_arrow_down

    Cameron Price - Making it Fast: The Power of Benchmarking in Elixir

    Cameron Price
    Cameron Price
    CTO
    TRX.tv
    schedule 1 week ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    There's an old expression, usually attributed to Kent Beck, that we should "Make it work, make it right, make it fast", in that order.  This talk is going to focus on making it fast.

    Not long ago, I was working on a little problem in Elixir that involved a two dimensional array.  Now, Elixir doesn't really have arrays, it has lists, maps, tuples, and binaries, so the one thing we can be sure about when implementing a 2-d array is that we're going to be simulating it using something else.  What I discovered was surprising, and served as an important lesson about actually benchmarking things.  

    In this talk, we'll discuss the importance of benchmarking, demonstrate some tools that make benchmarking in Elixir very simple, and show you some surprising results about which approaches are faster in this language.

     

     

    (This is a new talk, as such I have no slides or video for it)

  • Liked Sandesh Soni
    keyboard_arrow_down

    Sandesh Soni - Putting REST to Rest

    Sandesh Soni
    Sandesh Soni
    Fullstack developer
    -
    schedule 1 week ago
    Sold Out!
    20 mins
    Demonstration
    Beginner

    Alternative to APIs - GraphQL by Facebook

    Using GraphQL with Elixir using AbsInThe-GraphQL library

  • Liked Emil Soman
    keyboard_arrow_down

    Emil Soman - Turn hours into seconds - using Elixir for concurrent event processing

    Emil Soman
    Emil Soman
    Software Consultant
    Codemancers
    schedule 2 weeks ago
    Sold Out!
    45 mins
    Case Study
    Intermediate

    For programmers who have been using locks for synchronizing threads to solve all concurrency problems, embracing message passing and creating concurrent data flows is an enlightening experience. This talk is a case study of a real world concurrency problem where
    the developer started with a slow non-thread-safe solution and refactored it step by step
    into a fast yet simple concurrent solution making use of Elixir's concurrent computation library called Flow.

  • Liked Sandesh Soni
    keyboard_arrow_down

    Sandesh Soni - Elixir on Ruby

    Sandesh Soni
    Sandesh Soni
    Fullstack developer
    -
    schedule 1 week ago
    Sold Out!
    20 mins
    Talk
    Beginner

    For ruby and rails users who want to understand and learn elixir

    give a basic understanding
    Topic is not why Elixir? Its how Elixir.


    mix tooling, Ecto, tests
    Popular Elixir Library Alternates for Ruby libraries(Authentication, etc)

    This does not cover OTP framework.