Caching — HLD System Design Theory