Building Available and Partition Tolerant...
summary
Claims a production media-router meets Available and Partition Tolerant requirements by using Phoenix Tracker (Phoenix.PubSub PG2) instead of Riak-Core. Shows a concrete implementation: a dispatch library and DHT with consistent hashing, N=2 replication, multi-call quorum ops, and live demos of network split, conflict resolution (simple “pick a value” merge by default) and handoff during autoscaling. Code is open source on VoiceLayer GitHub, low-latency goal is explicit, tradeoffs around versioning and membership flexibility are discussed.
AI-written summary · about
chapters (37)
- 0:00Platinum
- 0:13Lanyard
- 0:33Outline
- 1:22Recurrent Airline System Failures
- 2:45The CAP Theorem
- 3:28CAP Triangle
- 4:18AP Systems
- 4:50Embracing Partition Tolerance
- 5:32Amazon Dynamo
- 7:03Techniques used by Dynamo
- 7:20Partitioning
- 9:04Replication
- 9:54Data Versioning
- 11:14Anti-Entropy
- 12:29Quorum
- 16:10Using Riak Core with Phoenix
- 16:31Issues
- 20:23High Level Architecture
- 21:06Media Cache Requirements
- 21:54Single-Node Media Cache
- 22:40Multi-Node Media Cache
- 23:06HA Media Cache
- 23:27Registry Hash-Ring
- 24:12Syncing Hash-Rings
- 24:51Phoenix Tracker
- 25:58Dispatch Library
- 26:38Dispatch Registry Not the be confused with the Media Cache registries
- 28:14Dispatch Service
- 29:23Distributed Hash Table
- 33:14Create Mix project
- 33:28Adding Dependency
- 33:55Config
- 34:20Application Start
- 34:33Dht Supervisor
- 35:31Initialization
- 36:19Setting a key/Value
- 37:02Getting Values
related talks
39mAn adventure in distributed programming
57mReliability Nirvana
36mKnee Deep Into P2P
24mPLOVER: Fast, Multi-core Scalable Virtual Machine Fault-tolerance
31mFarm Convergence with DRBD
23mCracking the PubSub Code. Elixir's Key to Scalable Real-Time Systems
32mGetting distributed with Firenest
41mEverything you always wanted to know about highly available distributed databases
