Use multi-threaded guava caches instead of unsynchronized maps