Tutorials and guides from practitioners who build distributed systems for a living. Start with a cluster on your laptop, load a real dataset, and build applications with working code that applies in production. Every example is tested, every code block runs.
-- Customer, Invoice, and InvoiceLine share a colocation key.
-- This 3-table JOIN executes without shuffling data between nodes.
SELECT
c.FirstName || ' ' || c.LastName AS customer,
COUNT(DISTINCT i.InvoiceId) AS orders,
CAST(SUM(il.UnitPrice * il.Quantity)
AS DECIMAL(10,2)) AS revenue
FROM Customer c
JOIN Invoice i ON c.CustomerId = i.CustomerId
JOIN InvoiceLine il ON i.InvoiceId = il.InvoiceId
GROUP BY c.CustomerId, c.FirstName, c.LastName
ORDER BY revenue DESC
LIMIT 5;
Everything starts with a running cluster. Three steps take you from a bare laptop to querying a distributed database with 15,000 records across 11 tables. No cloud account, no manual configuration. Apache Ignite runs out of the box; GridGain requires a free license.
Docker Compose pulls the images, starts 3 nodes, and initializes the cluster. Two minutes, one command. You get a topology that mirrors production: multiple server nodes, partition replication, and a client connection endpoint on localhost:10800.
The Music Store dataset models a digital media business: artists, albums, tracks, customers, invoices. 11 tables across 2 distribution zones with colocation configured for realistic partition behavior. Load it once via SQL script. Every tutorial on the site uses this schema, so it becomes familiar context as you work through the content.
Included in the first tutorial →With the cluster running and the dataset loaded, pick your entry point. Use SQL for exploration and ad-hoc queries. Use the Java Table API for typed access through RecordView and KeyValueView. Work through transactions for consistency guarantees across colocated tables. Or deploy compute jobs that run where the data lives.
Apache Ignite 2 and GridGain 8 share the cache-centric API (IgniteCache, SqlFieldsQuery). Apache Ignite 3 and GridGain 9 share the schema-driven API (RecordView, KeyValueView). Tutorials tab between the two so you see the version that matches your project.
// Connect and query the cache via the thin client
try (IgniteClient client = Ignition.startClient(
new ClientConfiguration()
.setAddresses("localhost:10800"))) {
ClientCache<?, ?> invoices = client.cache("Invoice");
// Fetch all invoices for customer 42.
// Affinity colocation: every record is on one node.
SqlFieldsQuery query = new SqlFieldsQuery(
"SELECT id, total FROM Invoice " +
"WHERE customerId = ?")
.setArgs(42);
List<List<?>> rows = invoices.query(query).getAll();
}
// Connect and query via the Table API
try (var client = IgniteClient.builder()
.addresses("localhost:10800")
.build()) {
var invoices = client.tables()
.table("Invoice")
.recordView();
// Fetch all invoices for customer 42.
// Colocated: every record is on one node.
var key = Tuple.create()
.set("CustomerId", 42);
Collection<Tuple> records =
invoices.getAll(null, List.of(key));
}
Tested guides for getting your cluster running and keeping it healthy.
Two paths, matched to where your architecture is today. Each path connects tutorials into a progression where each piece builds on the last. Not sure which path fits?
Apache Ignite is an open-source distributed database for applications that need both speed and consistency. It handles colocation, partitioning, and replication behind a SQL engine, Table API, compute framework, ACID transactions, and cluster management. GridGain extends Ignite with enterprise capabilities: role-based access control, LDAP authentication, transparent data encryption, cross-cluster disaster recovery, point-in-time backups, and commercial support.
Code you write against org.apache.ignite runs on both products without changes. The Java packages, SQL dialect, and thin client protocol are identical. Switching between products is a build-file change, not a code change. Where Docker images, Maven coordinates, or license configuration differ, tutorials use tabbed sections to show both setups. Enterprise-only features (security, disaster recovery, columnar storage) are labeled with the required GridGain edition. See what each edition includes →