Golang caching abstraction layer