In this series, I am going to publish a series of guidelines that can be used when selecting a distributed cache technology. The series will be divided in the main caching attributes, each of them containing a list of capabilities. The main categories that I will present are the following ones:
Data Storage: This attribute compares the cache based on their storage capabilities, limitations and format supported. This item is beneficial to companies exploring specific scenarios where these caches may be useful.
Data Manipulation: This attribute describes the data manipulation operations available for each cache. The capabilities enlist different techniques that may be available for each solution that can be aligned with specific scenarios.
Data Organization: This attribute describes how the data can be organized inside the cache. Organizing data on different groups or nodes can improve the data taxonomy architecture, allowing allocation strategies that can not only improve the readability but the performance of the cache.
Data Expiration: Data expiration contains elements that makes the cache allocation more efficient. The feature removes items that are not current from the cache, freeing the memory and the resources associated.
Data Integrity: Data expiration contains elements that make the cache allocation more efficient. The feature removes items that are not current from the cache, freeing the memory and the resources associated.
Notifications: A notificacion system allows the cache to interact with external applications. This attribute can be useful on scenarios where certain activities, for example workflows, need to know the state of an item.
Cache Topology: The cache topology describes the way that a cache can be implemented across different processes. This attribute is useful in order to understand how the cache can be implemented within the system architecture and to calculate the cost associated to it.
Security: Security can be a critical factor if the cache is shared across a mixed security platform. This attribute analyzes the security and privacy capabilities that the cache provides by default.
Cache Integration: This attribute analyzes the different capabilities related to 3rd party integration. Integrating natively with other software or architecture can improve the cache performance and will reduce the risk of using custom adapters.
Platforms and protocols: This attribute describes the cache platform supportabilty, native technologies used internally and the available protocols to access the data. This item should be considered in scenarios where you may have mixed environments.
Cache Infrastructure: This area explores the different cache infrastructure deployment models. This section is usually analyzed by the infrastructure team in order to understand what kind of kit is necessary to run the distributed cache system.
Management tools: Understading what is inside the cache is a useful feature when memory pressure appears on the distributed cache system. External management tools can help to diagnose what the cache is storing, offering online solutions that can reduce downtime.
All the items will be weighted based on importance, this guide can be used to build comparison matrices, we have done this exercise several times, specially comparing AppFabric Cache, NCache, ScaleOut and MemCached.