All Aboard the Stateful Train
summary
Demonstrates a working ExVenture MUD server and Grapevine web client with telnet bridge, using Phoenix/LiveView, GenServers, supervision trees and ETS for in-memory state so post-login gameplay avoids the database. Shows live combat and reconnecting WebSocket sessions, warns about mailbox growth, message-copy memory costs (naively passing large structs crashed a 64 GB desktop), Postgres LISTEN/NOTIFY for cache invalidation, and deployment needs like cache warming and rolling-restart compatibility. ExVenture MUD server Grapevine web client with telnet bridge
AI-written summary · about
chapters (11)
- 0:00Introduction
- 1:40Why go stateful
- 3:05Stateful vs stateless apps
- 4:33Demo of ExVenture
- 7:03Grapevine stateful features
- 8:53Pros and cons of stateful
- 11:22OTP challenges
- 12:47Building blocks of stateful apps
- 13:30ExVenture architecture
- 18:32Grapevine web client flow
- 19:16Wrap-up and resources
related talks
37mKeynote: All Aboard The Stateful Train
37mMultiplayer games and (...) with LiveView
28mLobbying with Elixir: Real-Time LiveView and OTP
44mThe NeverEnding Application
40mThe Power & Performance of Phoenix LiveView
39mBeyond Liveview: Real Time Features With Liveview
05mGameDev in Elixir using ECS and Live View
35mGoing Multi-Node
