What caching strategies would you use to optimize performance at the edge and within the application layer?