Caching Entire Systems without Invalidation

Thursday, 27 October, 2022 - 11:4512:30 CEST

Peter Sperl, Bloomberg


Caching is fundamental to scaling large systems and keeping them fast. The viability of caching is often constrained by design decisions made early in a system's life cycle. In this talk, we advocate that engineers consider maintainable and thorough caching as a core design goal of a system, and present numerous patterns to enable that.

Caching is simplest when dealing with stateless components, so the solutions presented revolve around controlling for states that are sometimes not accounted for, such as user settings, software versions, dependencies, wall time, and database state.

The "punch line" is that resolving state early in the request flow of your system will allow you to divide your system into two parts, the "state gathering" portion and the "immutable" or stateless portion. The immutable portion would have excellent cache characteristics, such as the ability to transparently cache responses throughout multiple service layers without an active cache invalidation strategy.

Peter Sperl, Bloomberg

Peter Sperl is an Engineering Manager in the Structured Products group at Bloomberg. Before joining Bloomberg, Peter worked as an engineer in the aerospace, medical, and information technology sectors, including at two startups. Peter has a bachelor's degree in electrical and computer engineering from Carnegie Mellon University.

@conference {284651,
author = {Peter Sperl},
title = {Caching Entire Systems without Invalidation},
year = {2022},
address = {Amsterdam},
publisher = {USENIX Association},
month = oct

Presentation Video