Interview Databases & Caching

What is cache-aside (lazy loading), and what are its failure modes?

Databases & Caching · Intermediate level

Answer

Cache-aside means the app checks cache first, reads the database on miss, writes the value to cache with TTL, and returns it. Its failure modes are stale data, stampedes, inconsistent invalidation, and DB overload during cache failure.

Technical explanation

TTL controls the trade-off between freshness and backend load.

Stampedes are prevented with request coalescing, locks, TTL jitter, stale-while-revalidate, and rate limits.

Invalidation is hard because writes can happen through many services; outbox events make invalidation more reliable after DB commit.

Hands-on example

Cache-aside with stampede protection:

1. GET product:v2:123.

2. On miss, acquire SET product:v2:123:lock 1 NX PX 5000.

3. Lock holder reads RDS and SETEX product:v2:123 300+jitter value.

4. Other callers return stale value or wait briefly.

5. After product update, commit DB then DEL product:v2:123 or publish invalidation via outbox.

Preparing for an interview?

Check how well your resume matches the role with our free resume checker— match score, ATS check, and the skills you're missing.

More Databases & Caching interview questions

← All Databases & Caching questions