Skip to content
0:00 / 0:00

#elixir#erlang#otp

GigCityElixir23 - Bryan Hunter

Groxio

2.9K subscribers • 1 video on Hallway

YouTube
  • Recommended by 5 people: 4 on Hacker News and 1 in engineering communities.
  • Presented by Bryan Hunter

Intermediate. Assumes working knowledge.

10K views3 years ago5 recommendations

Distributed systemsProgramming languagesElixir and ErlangFault tolerance and failureSoftware architecture

Bryan Hunter explains the design and architecture of HCA Healthcare's Waterpark system, a highly available, multi-datacenter Elixir and Erlang cluster.

GigCityElixir is brought to you by Groxio - grox.io - and is the Southeast's premier regional conference on the Elixir programming language. In this talk Bryan Hunter discusses HCA's Waterpark and it's impressive development and astounding impact on healthcare. Thank you to our GigCityElixir23 Platinum sponsors! Adobe: adobe.com Launch Scout: launchscout.com We want to connect with you! Website: grox.io Mastodon: @redrapids@genserver.social LinkedIn: linkedin.com/company/groxiolearning YouTube: youtube.com/c/groxio Instagram: instagram.com/groxiolearning Twitter: twitter.com/GroxioLearning #Elixir #Beam #ElixirLang #PhoenixLiveView #functionalprogramming #programming #programmer #coding #coder #coders #developer #computer #software #webdevelopment #webdesigner #codeismylife #softwaredeveloper #polyglot

Why it's here

5 people recommend this

What people say. Recommended as an excellent real-world demonstration of a highly resilient, fault-tolerant distributed system using Erlang and Elixir hot code reloading.

Moments people linked to

u/GreenCalligrapher571in r/elixir • Recommends

Bryan Hunter - Waterpark (Gig City Elixir 2023)

rramadasson Hacker News • Recommends

On “Ask HN: Good examples of fault-tolerant Erlang code?”

Not code but an excellent presentation of design/architecture of a Real-World fault-tolerant and distributed System in Erlang/Elixir - link to this video

rramadasson Hacker News • Recommends

On “The Erlang Ecosystem (2018) [video]”

After watching the above which gives one an idea of the Erlang System's capabilities, watch this presentation by Bryan Hunter where the design and architecture of a complete distributed and fault-tolerant Erlang/Elixir system is shown; You get to really see the mind-blowing power of the Erlang System in this - link to this video

notpublicon Hacker News • Recommends

On “A LiveView Is a Process”

This video may be of interest to you: link to this video Bryan Hunter explains how they do it at HCA healthcare (not specifically LiveView process, but processes in general).

GCUMstlyHarmlson Hacker News • Recommends

On “Elixir/Erlang Hot Swapping Code (2016)”

This is a talk about a large scale, resilient elixir/erlang deployment in healthcare. Specifically they talk about running with no down time using hot code reloading here: link to this video but the whole talk is quite interesting regarding availability. Warning: the video is quite quiet.

chantepierreon Hacker News • Recommends

On “Leveraging Elixir's hot code loading capabilities to modularize a monolithic app”

To add to this topic, people who do not know about erlang's hot code loading should watch this talk : link to this video A multi-DC running cluster where parts are progressively swapped at runtime. No database, only OTP.

u/GreenCalligrapher571in r/elixir • Mentions

On “Why is Elixir not being used predominantly?”

Elixir is awesome. My employer does all new work in Elixir unless there's a really compelling reason to do otherwise. It's also a niche and very young language, built on top of another niche language. There's not that big of a marketing push for it in the same way that there was when, say, Java came out. Unlike React 9 or 10 years ago, it's not "Here's a better, easy to swap-in way to do better work in a language you're already using". The vast majority of software development work is done on legacy applications within companies that have already decided their tech stack. Up until recently the dev ops story for Elixir was not awesome. There's some great tooling for working with running ap…

u/GreenCalligrapher571in r/elixir • Mentions

On “Are Elixir/Erlang processes a right fit for my system?”

Yep, that's textbook BEAM. You can have your processes, when they spool up, accept some arguments and run some code. This would let you, for example, say "Hey Process, you're responsible for <this thing with this ID> -- go look up your data and initialize stuff correctly!" Then perhaps as it receives new messages it writes them lazily to the DB, or when things get written to the DB a message gets sent to the appropriate process saying "Hey, refresh yourself!" Then when it crashes, its supervisor would say "Wait a second! We gotta reload stuff!" And off it goes. The one thing you'll want to pay attention to is what happens when you deploy updates. A conventional deploy (spin up a new in…

u/gargar7in r/elixir • Mentions

On “Considering Erlang for Customer-Specific Processes in a Subscription Management System: Thoughts?”

We do this with active patients in our medical systems, one process per patient for real-time signal generation and analysis. link to this video How many active customers will you need at once? Also, note, this is roughly how Discord works in Elixir with chat rooms and users.

u/GreenCalligrapher571in r/elixir • Mentions

On “What do you think of Phoenix on Rails?”

I do think the transition is largely worth it. I'm objectively a more skilled Rubyist than I am an Elixir developer. However, with the Elixir applications I've written and worked on, what I've generally observed with Elixir applications (compared with applications in any other languages): - My code is significantly easier to read and change later, mostly as a result of writing pure functions with significantly more explicit state changes (I get the same result from writing mostly-functional Ruby, but it's not as clean) - I can get new (to the codebase or to the language) developers up and productive faster. For someone who's an experienced developing but changing languages, I can get them…

u/lovebesin r/elixir • Mentions

On “Could BEAM solve many database’s problems?”

> keep many database instances in sync Recommended reading: https://www.oreilly.com/library/view/designing-data-intensive-applications/9781491903063/ Some tool ain't gonna solve this, as it's an architecture problem. Trying to build a database that abstracts the logic is only gonna make things harder. Before you go on building a database, I would recommend reading the book (which goes over pretty much all of the possible architectures to build eventually consistent systems), and then thinking about how Elixir can add a layer on top of RDS DBs. But to give an example of a way to do it, here's an example: link to this video
6View on Reddit

u/krnsiin r/elixir • Mentions

On “Show me some extraordinary stuff”

Another great talk from Bryan Hunter about a project called Waterpark. It’s really interesting how they designed and implemented a digital twin architecture without even using a database. One of my all-time favorite talks :) link to this video

u/krnsiin r/elixir • Mentions

On “[Design question] Mapping actor graph to "real-world" entities”

I recommend you watch this really good talk by Bryan Hunter about his Waterpark project. For every person in the system, there is an actor/process that holds it’s state. Due to distributed Erlang features, the system even does not need a central database. link to this video

u/p1kdumin r/elixir • Mentions

On “Guidance Needed for Stateful Elixir Service POC”

This talk might give you some ideas: link to this video

u/GreenCalligrapher571in r/elixir • Mentions

On “Top 05 Interview Questions”

If we're real-talking, I'm a "principal engineer" (Elixir and Ruby as my primary daily drivers) and it's pretty rare that I actually use any of the concurrency abstractions (GenServer, Process, Agent, Task, etc.) explicitly. I'll use GenServers from time to time, but I'm not sure I've ever written a Process or Agent or Task in a production codebase. Most of my work is just writing what's effectively synchronous code whose asynchronous parts are mostly hidden from me. If you want a really, really cool talk that shows you some of the power of processes and the other unique parts of the BEAM, check out this talk from Gig City Elixir by Bryan Hunter. I got to see it in person and it was _fan…

u/GreenCalligrapher571in r/elixir • Mentions

On “do most Elixir programmers know Erlang? Any recommended learning path?”

It took me probably 4 weeks of practice (this was pre-pandemic and I had a small child who slept poorly, so my memory is fuzzy) before I felt confident enough that I could write production code. Most of my work is in web-applications, so I started with "What do I need to know to be able to write Elixir/Phoenix apps that can do the things my Ruby/Rails apps can do?" and then I went from there. It was probably two or three months before I started feeling pretty okay, and maybe six months before I started feeling like I was writing idiomatic Elixir instead of just doing Ruby in Elixir. What I've found in the several years since is that I can support new hires (whether they're early-career de…