Features
Infinispan is designed with ease of use and performance in mind but also gives you enterprise-grade capabilities for a wide range of use cases.
  
    
      
        
          Flexible Deployment Models
          
            
              - Run as a library inside your applications.
- Deploy as a server with high-performance remote access.
 
        
       
     
    
      
        
        
          Designed for the Cloud
          
            
              - Lightweight, cloud-native design for microservice architectures.
- Kubernetes Operator that provides operational intelligence.
- Container image that you can run anywhere: OpenShift, AWS EC2, Azure, GCP.
 
       
     
    
      
        
          Configurable data storage
          
            
              - Configure cache modes to distribute and replicate data as needed.
- Encode key/value entries with different storage formats.
- Store data in the JVM heap or native “off-heap” memory.
 
        
       
     
    
      
        
        
          Clusterable and Elastic
          
            
              - Automatically form clusters with configurable discovery mechanisms.
- Tune consistent hashing to control the nodes where data is located.
- Create global clusters that span multiple data centers.
 
       
     
    
      
        
          Secure
          
            
              - Control access to data based on user roles and permissions.
- Define server security realms that protect you from intrusion and attack.
- Encrypt inter-cluster traffic and remote endpoints.
 
        
       
     
    
      
        
        
          Administration and Monitoring
          
            
              - Infinispan Console gives you intuitive administration and monitoring capabilities.
- Infinispan CLI provides simple, yet powerful, tooling for administration tasks
- Get statistics and MicroProfile compatible metrics for observability over time.
 
       
     
    
      
        
          Developer Tooling
          
            
              - Quarkus extensions.
- APIs for programmatic usage and extensibility.
- Integration with Hibernate ORM, Spring Boot, JCache, and Wildfly.
 
        
       
     
    
      
        
        
          HotRod Remote Protocol
          
            
              - Language-independent, binary protocol for high-performance remote access to data.
- Client intelligence dynamically responds to cluster topology changes and requests data from primary owners.
- Implementations available in Java, C++, C#, and Python.
 
       
     
    
      
        
          Expiration and Eviction
          
            
              - Clean the data container and control memory usage.
- Create mortal entries with time limits for remaining in memory.
- Limit size of the data container based on the number of entries or amount of memory.
 
        
       
     
    
      
        
        
          Persistent Cache Stores
          
            
              - Store data both in memory and durable persistent locations.
- Cache stores available for File, RocksDB, JDBC, and more out of the box.
- Use write-through caching to eliminate expensive data requests for applications.
 
       
     
    
      
        
          ACID Transactions
          
            
              - Ensure data integrity with distributed transactions.
- Configure transactions with optimistic or pessimistic locking, synchronization, and different isolation levels.
- XA transactions with full recovery available.
 
        
       
     
    
      
        
        
          Search
          
            
              - Ickle query language allows relational and full-text search with straightforward syntax.
- Create indexes of your data to improve search performance.
 
       
     
    
      
        
          Event Listeners
          
            
              - Deploy local or clustered listeners to detect events.
- Get notifications when changes occur to the data store or Infinispan clusters.
 
        
       
     
    
      
        
        
          Code execution
          
            
              - Run code across clusters to process data efficiently.
- Create server-side scripts and tasks.