Skip to content
0:00 / 0:00

#elixir#beam#erlang

Solid Ground // Saša Jurić

EMPEX Conference

1.4K subscribers • 3 videos on Hallway

YouTube
  • Recommended by 4 people: 3 on Hacker News and 1 in engineering communities.
  • A classic. People kept recommending it from 2017 to 2023.
  • Presented by Saša Jurić, author of Elixir in Action

Intermediate. Assumes working knowledge.

13K views9 years ago4 recommendations

Programming languagesDistributed systemsElixir and ErlangConcurrency and parallelismFault tolerance and failure

Saša Jurić demonstrates the Elixir and Erlang process model and explains how the BEAM runtime achieves fault-tolerant parallelism by design.

The uploader added no description.

Why it's here

4 people recommend this

What people say. Recommended as a perfect articulation of what sets Erlang, Elixir, and the BEAM runtime apart from other platforms.

Moments people linked to

u/petecoreyin r/elixir • Recommends

Solid Ground // Saša Jurić

h0l0cubeon Hacker News • Recommends

On “My favorite Erlang program (2013)”

This was in a top level comment on this post. It perfectly articulates what sets Erlang/BEAM/Elixir apart from other runtimes/languages. Essentially performant, fault-tolerant parallelism by design. link to this video If you need to break out into SIMD, you also have NX at your disposal. And Rustler/Zigler provide you an escape hatch to low-level languages, with the latter you can code in Zig inline link link link

auxbusson Hacker News • Recommends

On “Elixir multiple processes: Basics”

Saša Jurić's Solid Ground talk is a lovely demonstration of Elixir's processes: link to this video (Saša is also the author of Elixir in Action; a highly recommend read once you have your head around Elixir's fundamentals.)

rehemiauon Hacker News • Recommends

On “Elixir v1.6 released: code formatter, dynamic supervisors, and more”

For people wondering about what Elixir and the BEAM are offering, for a quick overview of the best features of this stack see this talk( link to this video ). If anyone starts learning Elixir now: I can recommend using VSCode with ElixirLS extension. Also: pragprog books, Sasa Juric's book. If you like video tutorials I've heard good things about PragDave's course.

u/sasajuricin r/elixir • Mentions

On “Is Elixir really worth it?”

This is a very interesting question. It's my impression too that with Kubernetes one can get the similar set of properties as with BEAM. It also seems to me that in terms of a higher-level features, K8s is more feature rich than what we have in the BEAM ecosystem. Given the fact that you need to learn the whole new language, runtime, and the associated ecosystem, it's valid to ask is it worth it. In my opinion, BEAM excels due the fact that it offers the foundational concepts needed for any server-side system, baked directly into the runtime. This has an important benefit in that it can significantly reduce the technological complexity of the solution. In my experience, in many cases the sy…

u/Kingoftheknollin r/elixir • Mentions

On “What stuff is deemed to be advanced in Elixir/Erlang VM?”

The preemptive scheduler. As far as I know no other mainstream language or VM has one other than operating system kernels. Most of the interesting things that are in the BEAM are rooted in solving the problem of always being available. There was a recent talk about the solid foundation the BEAM gives us where the speaker started a node with only one scheduler (one os thread) and was still able to make requests while one request was blocking calculating some ridiculous prime number or something. So if you compared this to JS or Go which have cooperative schedulers if one request blocks the thread with a synchronous task you’ve screwed your performance. BEAM makes some trade offs to get con…

u/Cloud9_On_LANin r/elixir • Mentions

How are you debugging in production? I've watched a talk from Saša Jurić: [video where he shows that you can debug a live system with iex, and that you can get a lot of information about what's going on in the system, stack traces and even trace particular PIDs. It looks awesome, but in a company where you usually have security policies, you can't just attach a repl to something running in production like that, unless you are from an Ops team I guess. If you use Elixir in prod, how do you approach debugging? Anything that's different from the logs/metrics (and maybe trace spans)?

u/p_r_m_n_in r/elixir • Mentions

On “What are the advantages of learning Elixir for Back-End?”

It's awesome. Built on erlang Concurrency is a main selling point. Functional language Immutability is nice. Pattern matching is awesome. It's fast. Scales well Distributed Fault tolerant (Supervision trees) Syntax is nice and readable Community is smart and welcoming Standard library is complete Portable Tooling is very well thought out (i.e. distillery) Phoenix is great, especially how easy setting up websockets with channels. ...and many more.. With all these features, in my opinion it makes elixir the go to for a backend. Sasa Juric does a great job explaining more in depth why elixir is a great choice for almost any project. [video

u/picandocodigoin r/elixir • Mentions

On “What is your favorite advanced Elixir(and/or Erlang or Phoenix) talk/tutorial/book/article/resource/etc.?”

We recently watched this talk about BEAM at work and it's really good, very interesting link to this video

u/limbsflailingin r/elixir • Mentions

On “I liked the Elixir. But which cases does Elixir / Phoenix solve and that I can't do the same with Django? (or do with the same performance, etc.)”

Sasa will explain it to you link to this video

u/sasajuricin r/elixir • Mentions

On “Why do you guys think Elixir is awesome?”

I really like how BEAM (the Erlang virtual machine) is designed to power long-running fault-tolerant scalable software systems. I've elaborated in more details in this talk. There are many other great properties, such as OTP, functional programming, additional Elixir features and tooling, the ecosystem, and so on, but I personally feel that BEAM is the thing which really sets apart Erlang, Elixir, LFE, and other BEAM facing languages, from the rest.

u/sasajuricin r/elixir • Mentions

On “From Elixir to Go (or other way around)”

> In Go we have a package called context, it's used mostly to propagate the intention to cancel something. So, whenever a HTTP request is made, if something get wrong, the context can be canceled and all the inner operations get canceled at the same time and the error return all the way up to the caller. Don't know how or if this is possible with Elixir/Plug. Elixir has a first-class cancellation support through processes. A process can be immediately terminated from the outside (another process), and this will properly work, even if the process is completely busy, say doing an infinite CPU-bound loop. Therefore, implementing a cancellable task can be done as follows: - start the task in…
3View on Reddit

u/EsperSpiritin r/elixir • Mentions

On “Sell me on Elixir”

One thing that blows Ruby (and many other languages) out of the water is the reliability of it all. It's fast, easy to scale, easy to debug, observability out of the box, and you can shoot it with a cannon from orbit and it will recover and continue. Most inexperienced devs don't care about that because it's not cool and trendy but when you're on call or don't want to fix old projects month after month because they keep having issues, Elixir (or rather its foundation) has your back. If you want more details and a more visual example watch Solid Ground edit: I forgot to say: LiveView is incredible! Yes, Rails technically has something similar but in Elixir it's simpler, faster, and - aga…

u/nathan_longin r/elixir • Mentions

On “Phoenix?”

\> not familiar with ruby so i can't appreciate your comparison :/ The comparison is simply "Rails gives a productive way to build web apps in Ruby, and Phoenix does that in Elixir". \> question is what does elixir + phoenix bring to the table which is better than django or whatever Every request is handled by a separate BEAM process, so you get fault tolerance and preemptive multitasking. Eg if you accidentally do an infinite loop in handling request A, request B doesn't notice. See "On Solid Ground" talk - [video