# Caching Without Marshal Part 2: The Path to MessagePack

DevFeed: [Caching Without Marshal Part 2: The Path to MessagePack](<https://devfeed.tech/articles/caching-without-marshal-part-2-the-path-to-messagepack-1338.md>)

Original publisher: [Read original article](<https://shopify.engineering/caching-without-marshal-part-two-messagepack>)

Author: Chris Salzberg

Published: 2022-11-15T15:00:00Z

Content type: article

Language: en

Sources: [Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering.md>), [Shopify Engineering - Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering-shopify-engineering.md>)

Topics: [Caching](<https://devfeed.tech/topics/caching.md>), [Cache](<https://devfeed.tech/topics/cache.md>), [Rails](<https://devfeed.tech/topics/rails.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [cache](<https://devfeed.tech/tags/cache.md>), [caching](<https://devfeed.tech/tags/caching.md>), [code](<https://devfeed.tech/tags/code.md>), [rails](<https://devfeed.tech/tags/rails.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [serialization](<https://devfeed.tech/tags/serialization.md>), [serialization-format](<https://devfeed.tech/tags/serialization-format.md>)

## AI overview

Shopify's second article on replacing Ruby's Marshal cache format explains how MessagePack provides a more robust binary serialization format for Rails caching. Unlike Marshal, MessagePack is language-independent and avoids encoding Ruby-specific types that can make cached data fail after code changes.

## Source excerpt

Shopify wanted a cache format that would not blow up when we shipped code changes. Part two of Caching Without Marshal describes the MessagePack format, and how we migrated to MessagePack.