JetCache is a Java cache abstraction framework that provides uniform usage across different caching solutions with powerful annotation-driven features.
JetCache solves the problem of managing caches across heterogeneous backends by offering a single API and annotation model that works with Redis, Caffeine, Tair, and simple in-memory implementations. It abstracts away backend-specific details while adding capabilities beyond standard Spring Cache annotations, including native time-to-live configuration, two-level caching that combines local and remote stores, and automatic refresh in distributed environments. Developers can either use declarative annotations like @Cached, @CacheUpdate, and @CacheInvalidate on methods, or manipulate Cache instances directly through a programmatic API.
Teams should adopt JetCache when they need flexible caching strategies that go beyond single-backend solutions or when they require features like distributed cache refresh, cross-JVM cache invalidation, or two-level caching to balance latency and consistency. It suits projects already using Spring Framework or Spring Boot where annotation-driven caching fits the architecture. The framework supports customizable key generation and value serialization strategies, with built-in support for multiple JSON libraries and encoding formats. Asynchronous cache access is available for non-blocking operations, and distributed locking primitives help prevent cache stampedes.
Development on the project shows consistent maintenance with regular feature additions across releases. The codebase demonstrates attention to distributed system concerns through features like automatic cache refresh and cross-process invalidation. The framework has evolved to support modern Java versions and Spring versions while maintaining backward compatibility for earlier releases. Documentation is maintained in English alongside the primary language, indicating effort toward accessibility for international users.