Concurrent and Resilient Connections to Outside the BEAM
summary
Keeps to concrete techniques: encapsulate TCP sockets in GenServers and choose between a checkout socket (blocking) model with pooling or an active mode + no_reply flow that uses gen_server:reply to avoid client blocking; split send/receive into separate processes to exploit TCP full‑duplex; use the connection behaviour (James Fish) with backoff/disconnect callbacks for self‑healing reconnection; demonstrated with radix (Redis driver) running a single connection process in production and working reliably under real load.
AI-written summary · about
chapters (27)
- 0:00Intro
- 1:26Generalizing the tools
- 2:09The outside world is scary
- 2:49Who am I
- 3:08Where am I from
- 3:29Sponsor
- 3:44Hands Test
- 4:23Assumptions
- 5:52Redis
- 6:38TCP
- 7:15Keep the socket open
- 7:49Block blocking ways
- 8:17Sockets
- 8:43Pseudocode
- 9:24Two solutions
- 10:49Pooling
- 11:31Passive mode
- 12:55No reply
- 13:31Manual reply
- 15:12Bidirectional TCP
- 17:12Pros and Cons
- 20:40Resilience
- 22:26Xcode Connection
- 22:51Connect and Disconnect
- 24:44Synchronization
- 28:45Recap
- 29:25Resize
related talks
27mScalable distributed systems from grounds up in Elixir
08mPërvoja personale me Go si gjuhë e infrastrukturës
25mTaming Client-Server Communication
27mRuby Messaging Patterns
54mReacting to an Event-Driven World
41mDecouple all the things: Asynchronous messaging keeps it simple
52mGoing Reactive with Helidon!
55mThe Reactive Revolution
