Selling Food With Elixir
summary
Built a Phoenix API that batches orders and sends them 15 minutes before pickup, with per-store supervision trees isolating failures and a worker-per-order model so one bad POS gateway doesn’t stop others. Uses ETS-backed capacity counters and processes that hold a slot for ~7 minutes, atomic counters for availability, and gen_retry exponential backoff (with Immortal ET table manager to survive restarts). Practical failures include duplicate sends from unnamed processes, HTTPoison/Hackney connection pool timeouts, and Heroku preventing node introspection and multi node setups.
AI-written summary · about
chapters (6)
- 0:00Start
- 0:25Selling food with Elixir
- 4:141. rails new cava grill 2. bundle install sidekig 3. rails generate Order 4. Start coding!
- 6:582. Embrace state outside of the database.
- 23:04Updating the availability of a timeslot
- 36:24Understand the process design (and the bottlenecks) of the libraries you're using.
related talks
51mEffective Microservice Communication and Conversation Patterns
33mHigh availability by offloading work
47mShipping a Replacement Architecture in Elixir
49mElixir in an Enterprise Telecommunications Product
37mFrom the ground to the stars
15mMicroservices with Elixir
27mScalable distributed systems from grounds up in Elixir
38mMaintaining highly distributed services with Erlang: 20y experiences in fintech
