axelson

axelson

Scenic Core Team

Consistent, Distributed Elixir - @keathley

Elixir and Erlang provide powerful mechanisms for building systems that are always available. But when it comes to building distributed systems that need consistency Erlang leaves many of the implementation details up to the programmer.

In this talk we’ll discuss the trade offs between systems that are always on and systems that are consistent. We’ll look at the types of guarantees that standard Erlang tooling gives us as well as their shortcomings. Finally we’ll look at several patterns and techniques for building consistent, distributed systems using elixir.

Audience: Intermediate, Advanced

Showing Posts 1 to 5

idi527

idi527

@keathley :waving_hand::+1:

Have you looked into other raft implementations on beam, like rabbitmq/ra or maybe dreyk/zraft_lib? What are the main differences of :raft from those other implementations?

andre1sk

andre1sk

@keathley very good talk!!! and amazing work this will enable a lot of cool apps in Elixir ecosystem once ready for prod use.

keathley

keathley

Thanks! We’re getting closer to production readiness so hopefully it’ll be useful soon.

andre1sk

andre1sk

I actually think the work you are doing will be the enabler of killer apps for Elixir ecosystem especially in data processing pipelines. Among other things it will enable a Elixir native kafka like system that can expose a GenStage producer with no external dependencies on ZK. That would make Elixir the killer platform for data processing pipelines.

keathley

keathley

Even after all of my searching I hadn’t seen zraft so I’ll have to look into it more. One of the design characteristics that I wanted was a backend that used an established database engine instead of handling files directly. Thats why our implementation uses rocksdb (although since its pluggable you could really use whatever you want). Based on a quick glance at zraft it looks like its managing the log file directly. That doesn’t mean that its a poor implementation by any means. Just something I noticed and probably would have been a deal breaker for my uses. Hard to say though so I’ll have to dig in more.

Ra seems great but its under heavy development and is a sufficient departure from the original raft algorithm in regards to its failure detection that I felt better about building a solution that was a little closer to the original specification. Ra has made a bunch of tradeoffs that make total sense for its use in rabbitmq. Those are reasonable tradeoffs for them but aren’t tradeoffs that I need.

— All posts loaded —

Where Next? Top

Trending in Talks Top

CodeSync
LT: The Elixir Hiring Paradox - Arjun Gillard | ElixirConf EU 2026 Comments welcome! View the <span class="hashtag-icon-p...
New
CodeSync
LT: Skode: an ASCII shorthand for audio experimentation - Joseph Stewart | ElixirConf EU 2026 Comments welcome! View the ...
New
ElixirConf
Writing Your Own Req Plugin - Jacob Swanner | ElixirConf US 2025 Comments welcome! View the <span class="hashtag-icon-pla...
New
ElixirConf
Building Websites with Tableau - Mitchell Hanberg | ElixirConf US 2025 https://www.youtube.com/watch?v=B5e7M-Ogyho Comments welcome! V...
New
CodeSync
Reactor Under the Hood: Building a Graph-Based Saga Orchestrator in Elixir, James Harton | Code BEAM Comments welcome! Vi...
New
CMC
How to Think About Game Servers (Pt 2) Hernán Rivas Acosta looks at how latency and jitter affect multiplayer games and the techniques d...
New
CodeSync
MoodBot: Raising a Tiny Robot with Elixir, Nerves, and AI - Carsten Rösnick-Neugebauer | Code BEAM Comments welcome! View...
New

Other Trending Topics Top

mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge &amp; Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews