Repeated, expensive lookups (an RPC call, a slow database query) benefit from caching. A simple in-memory cache stores a value with a timestamp and expires it after a time-to-live (TTL).
js
function createCache(ttlMs) {
const store = new Map();
return {
get(key) {
const hit = store.get(key);
if (!hit || Date.now() > hit.expires) return undefined;
return hit.value;
},
set(key, value) {
store.set(key, { value, expires: Date.now() + ttlMs });
},
};
}
const priceCache = createCache(30_000); // 30 second TTLIn-memory caches are simple but don't survive a restart and aren't shared across multiple server instances — for those needs, an external store like Redis is the usual next step. "There are only two hard things in computer science: cache invalidation and naming things" is a joke with real substance.