After four years of development, Apache Ignite released version 3 on February 5, 2025. This release introduced a redesigned core architecture to address the limitations of previous versions, such as Ignite 2.x.
In this blog post, I will provide a quick overview of Ignite 3’s core components and architectural changes that set it apart from earlier versions.
Disclaimer: The information presented here reflects my personal opinions and is not affiliated with any official statements or other sources.
I have had a close relationship with Apache Ignite since its early days when it was positioned as an in-memory data fabric. Over the years, it has offered a wide range of features—sometimes including ones that felt unnecessary, such as Hadoop acceleration. From machine learning to distributed computing, Ignite has tried to do it all. At times, it has felt like a duck: it can swim, walk, and fly, but it doesn’t excel at any one thing perfectly. In my opinion, most end users see Apache Ignite primarily as an in-memory cache—and nothing more.
Although Apache Ignite 2.x was a solid release, it had several limitations that left room for improvement:
Inefficient data rebalancing across the cluster.
Lack of split-brain protection, leading to potential data inconsistencies.
No support for SQL transactions, limiting its use in certain applications.
Complex cluster management when scaling beyond 100 nodes.
Cumbersome XML-based configuration in Spring configuration files.
...
With Apache Ignite 3, many of these limitations have been addressed. The new release brings significant improvements in data rebalancing, providing better performance and scalability across clusters.
Data Rebalancing & Replication: Ignite 3 uses Raft for replication, with the JRaft implementation providing split-brain protection.
Cluster Membership and Node Joining: The legacy Ring and Zookeeper components have been replaced by ScaleCube, which supports large-scale clusters and simplifies membership and node joining.
SQL Engine: Ignite 3 replaces the H2 SQL engine with Calcite, offering better SQL optimization and enhanced capabilities for executing analytical SQL queries.
Storage Engine: The new storage engine uses Page Memory (B-tree) and LSM tree persistence via RocksDB, providing more efficient data storage.
SQL Transaction Protocols: Ignite 3 introduces new SQL transaction protocols based on Multi-Version Concurrency Control (MVCC), ensuring better transaction management and consistency.
Thin Client: The previous thick client model has been replaced by a thin client, which is no longer part of the cluster topology, making client-server interactions more lightweight.
Unified Schema: Ignite 3 uses a unified schema for both Key-Value and SQL, replacing the term "cache" with "table." This brings greater consistency across different data models.
Asynchronous and Reactive Programming API: The client APIs in Ignite 3 support asynchronous and reactive programming models, utilizing standard language constructs like CompletableFuture and the Flow API in Java.
Dynamic Configuration: The legacy Spring configuration has been replaced with configuration in HOCON format. Ignite 3 allows for dynamic configuration changes at runtime via CLI or API, offering greater flexibility and ease of management.
Let’s highlight the key differences between Ignite 2 and Ignite 3.
At first glance, this version of Apache Ignite looks very promising. It’s easy to get started and configure a cluster within minutes, whether locally or in a Docker container. Writing a few lines of Java code to execute some SQL queries works smoothly. However, whether it’s fully production-ready is still hard to determine.
Given that Apache Ignite is now positioned not just as a cache but as a distributed database, I believe the following features will be crucial for developers looking to use the product in production:
JPA Support
API for using Ignite as a second-level cache
Support for storing embedded data and semantic search
With the rise of Generative AI, these features will be essential for taking full advantage of Ignite’s capabilities in the future.
If you enjoy reading the blog and find my content helpful or inspiring, consider buying me a coffee on Ko-fi. Your support helps me keep creating, writing, and sharing valuable content for free. Every little bit means a lot — thank you! 💙