Software Unscripted cover image

Software Unscripted

Undo-Redo and Persistent State with Tom Ballinger

Jul 12, 2024
Tom Ballinger discusses undo and redo in REPLs, stateful systems, hot code loading, and database query planning. Topics include using Redis for undo operations, managing persistent state in a REPL environment, enabling time-rewind mechanisms in games, maintaining determinism in software projects, and cache invalidation in web applications.
59:28

Episode guests

Podcast summary created with Snipd AI

Quick takeaways

  • Implementation challenges of undo in REPLs due to memory overhead and side effects.
  • Importance of meticulous planning and handling of edge cases in hot code loading.

Deep dives

Exploring Undo and Redo in the Context of REPLs

The podcast delves into the concept of undo and redo within REPLs, highlighting the implementation of undos in existing REPLs such as IRB and Python. There is a discussion on the usage of 'fork' in enabling undo functionality, with considerations on the challenges of productionalizing the concept due to memory overhead and side effects. The utilization of consistent snapshots in systems like Redis and Factorio is explored, showcasing the significance of structural sharing.

Remember Everything You Learn from Podcasts

Save insights instantly, chat with episodes, and build lasting knowledge - all powered by AI.
App store bannerPlay store banner