Caching interview question · Most asked

Should you invalidate the cache before or after the database commit?

Summary

After. Deleting before commit lets other readers re-cache the old row (they still see it until the commit). Use on-commit hooks or transactional events.

Longer Answer

Django transaction.on_commit, Laravel DB::afterCommit, Spring @TransactionalEventListener(AFTER_COMMIT) or a transaction-aware cache manager. Also avoid filling the cache from a lagging replica right after a write.

Key Points

  • Invalidate after commit
  • Before-commit deletes get undone
  • Don't fill from lagging replicas

Deep dive: Database Caching at Scale

More most-asked Caching questions

← All Caching questions