Skip to content
0:00 / 0:00

#elixir#docker#otp

ElixirConf 2018 - Docker and OTP Friends or Foes - Daniel Azuma

ElixirConf

13K subscribers • 18 videos on Hallway

YouTube
  • Recommended by 4 people: 4 on Hacker News.
  • A classic. People kept recommending it from 2018 to 2022.
  • Presented by Daniel Azuma

Intermediate. Assumes working knowledge.

16K views8 years ago4 recommendations

Programming languagesDistributed systemsElixir and ErlangDocker and containersConcurrency and parallelism

Daniel Azuma demonstrates how to run Elixir OTP applications in Docker containers, using CRDTs to persist state across container restarts.

The uploader added no description.

Why it's here

4 people recommend this

What people say. Highly recommended for showing how to successfully combine Elixir's stateful OTP features with ephemeral container environments like Kubernetes.

qohenon Hacker News • Recommends

On “CRDT: Conflict-free replicated data type”

…hile the Docker container it's running in gets killed and and the Elixir processes get respawned on another container. The state is persisted across Elixir nodes in other containers in an instance of DeltaCrdt. (Again, the talk is really good -- if the above sounds interesting, you'll want to check it out 3). 0 link 1 link 2 link 3 link to this video…

dnauticson Hacker News • Recommends

On “My favorite Erlang program (2013)”

Honestly, in most scenarios, you kill the vm and let it restart with new code (just like you would in a kubernetes pod, and in fact using kubernetes pods with BEAM languages is also a valid strategy). If you must keep some state preserved, there's even ways to do it without erlang's hot code reloading strategies, I would recommend watching Dan Azuma's fantastic video (stick around for the live demo): link to this video

pg_boton Hacker News • Recommends

On “Phoenix 1.4.0 released”

You can use Docker + containers with OTP, they are not mutually exclusive. Daniel Azuma gave a talk at the most recent Elixirconf about this subject.0 0: link to this video

dnauticson Hacker News • Recommends

On “An Introduction to Conflict-Free Replicated Data Types”

In the elixir community CRDTs are well known for various HA; AP distributed state strategies, Phoenix Presence uses CRDTs to track processes and broadcast them over pubsub channels. This makes it trivial to represent "user state" in chat rooms, Sophie DiBenedetto describes using it for writing a trivial chat app: link For something a bit wilder, you can track your state machines across a distributed cluster and be able to pass and preserve state across the cluster using CRDTs, as is done in Dan Azuma's (live) demo of a tank game: link to this video (worth it for the demo at 29m)

h0l0cubeon Hacker News • Recommends

On “An animated introduction to Elixir”

> you should store the state in the external system It's an old talk, but this one has a strategy for robustly persisting state across ephemeral containers. The example here is running a multiplayer game server while doing code updates etc. using Horde and CRDTs link to this video

throwawaymathson Hacker News • Mentions

On “A LiveView Is a Process”

…erant to client or client connection failures, you should design to be able to repopulate state sanely in the on_mount call. If you want some sort of ephermal network state that lives on one node and not the database only (e.g. a game), the liveview should connect into that. If you want to store that in a genserver, a strategy like this is doable: link to this video…