Abstraction is a principle tenant of software engineering commonly known as polymorphism. It is a generalization of the idea of a concept to a set of related concepts. It's is incredibly powerful in building software, and it's a key part of the software engineering process. Learning to abstract software properly is a skill that takes time to master.

Cache Miss

A cache miss occurs when an application tries to retrieve a value from a cache, but the value is not found in the cache. This is a common problem in web applications. In general, cache misses are not a problem, just re-retrieve the value from the database and store it in the cache. A TTL Cache is a cache that expires entries after a certain amount of time. The value is automatically removed from the cache when the TTL expires. This form of cache is useful for cases where applications have an expected rate of change for data.