cache, boto retries

I think caching at this layer makes sense because we can't always depend on "well-behaved clients".