Caching Without Marshal Part 1: Marshal from the Inside Out - Shopify
Nov 11, 2022

Summary
This post details the internal workings of Ruby's Marshal serialization format, explaining its encoding of objects, instance variables, and circular references. It highlights the risks associated with Marshal's ability to serialize arbitrary Ruby objects, which can lead to production incidents when code changes interact with cached data. The post sets the stage for a subsequent discussion on replacing Marshal with MessagePack.