1) пробуем получить книги с сервера 2) если отсутсвует сеть или превышен таймаут - пробуем получить книги из локальной бд 3) если получили книги с сервера - кладем их в локальную бд
Видим что тут. нам надо определить 2 источника данных - локальный и с сервера, такие источники называются: Прокси, Декораторы, Провайдеры. Погугли что это значит.
То есть мое понимание в общем верно, только вот сам "кеш," не является обязательным элементом, так как данные могут подтягиваться по запросу из источников. Это по ситуации.