Search⌘ K
AI Features

Solution: Cache Data Using Selectable Backends

Explore how to implement a caching system in Node.js by applying the Strategy pattern to switch between in-memory, file-based, and no-op caching backends dynamically. Understand how to design each cache strategy independently and delegate caching operations without conditional logic, enabling adaptable and maintainable backend code.

Solution explanation

  • Lines 4–16: We define the MemoryCache strategy.

    • Maintains a simple in-memory object store for quick lookups.

    • .get() returns a cached value or null.

    • .set() directly mutates the store.

    • Ideal for development or temporary caching.

  • Lines 18–37: We define the FileCache strategy.

    • Uses a JSON file (cache.json) to simulate persistent storage.

    • On construction, ensures the file exists.

    • Each .get() and .set() call reads and writes synchronously for simplicity.

    • This models a production-like persistent cache backend.

  • Lines 39–47: We ...