What is the best way to handle a caching layer? - Theo's Typesafe Cult