Episode

Supervised State Replication in Elixir with Micah Cooper

Podcast
Elixir Wizards
Published
May 7, 2026
Duration seconds
2820
Processing state
processed
Canonical source
https://smartlogic.fireside.fm/s15-e02-supervised-state-replication-elixir-micah-cooper
Audio
https://aphid.fireside.fm/d/1437767933/03a50f66-dc5e-4da4-ab6e-31895b6d4c9e/ed9443b4-16a8-4cf2-ac69-af6e6b9bfe4a.mp3
JSON
/v1/public/podcasts/elixir-wizards/episodes/supervised-state-replication-in-elixir-with-micah-cooper
Markdown
/podcast/elixir-wizards/supervised-state-replication-in-elixir-with-micah-cooper.md

Actions

  • POST https://stenobird.com/v1/public/podcasts/elixir-wizards/episodes/supervised-state-replication-in-elixir-with-micah-cooper/transcription-requests
    Idempotently request low-priority transcript generation for this episode.
  • GET https://stenobird.com/podcast/elixir-wizards/supervised-state-replication-in-elixir-with-micah-cooper.md
    Read the agent-friendly Markdown representation of this episode resource.

Summary

Explore the mechanics of state replication in Elixir using the Viewstamps algorithm. Micah Cooper discusses building Visor, a library designed to replicate GenServer state across distributed nodes for enhanced fault tolerance.

Topics

  • Elixir
  • Distributed Systems
  • Data Replication
  • GenServer
  • Viewstamps Algorithm
  • Event Sourcing
  • Fault Tolerance
  • Visor Library
  • BEAM

Highlights

  • Main idea: Visor uses the Viewstamps replication algorithm to synchronize GenServer state across multiple nodes
  • Practical takeaway: Distinguishing between distributed systems and data replication is critical for designing reliable Elixir applications
  • Failure mode: Event sourcing can introduce significant complexity and memory overhead if history management and snapshotting are not handled
  • Technical insight: Replicating a Write-Ahead Log (WAL) is a foundational pattern for achieving consistency in distributed databases
  • Design philosophy: Building for curiosity and experimentation allows developers to push the boundaries of the BEAM ecosystem

Chapters

  1. 1:00 Developer Background: Micah discusses his transition from Ruby to Elixir and his early experiences in the ecosystem.
  2. 4:35 Inspiration from TigerBeetle: How the design principles of the TigerBeetle database influenced the development of Visor.
  3. 8:10 Replicating GenServer State: A deep dive into the mechanics of updating and persisting state within a GenServer context.
  4. 11:55 Scaling Replication: The benefits and trade-offs of increasing the number of backup nodes in a replication algorithm.
  5. 15:20 Orchestration and Redundancy: Using orchestration platforms to manage synchronized and redundant nodes.
  6. 22:20 Distributed Systems vs. Data Replication: Clarifying the fundamental differences between these two often-confused concepts.
  7. 25:45 Challenges in Event Sourcing: Discussing the industry resistance to event sourcing due to its inherent complexity.