Apache IgniteÂ
Module 1: Introduction to In-Memory Computing
What is in-memory computing and why it matters
Traditional database limitations and performance bottlenecks
In-memory computing use cases and benefits
Apache Ignite overview and ecosystem position
Ignite vs. other solutions (Redis, Hazelcast, etc.)
Lab: Environment setup and first Ignite cluster startup
Module 2: Ignite Architecture Deep Dive
Ignite cluster topology and node types
Data distribution and partitioning concepts
Memory architecture (on-heap, off-heap, persistence)
Discovery mechanisms (multicast, static IP, cloud discovery)
Baseline topology and cluster activation
Lab: Multi-node cluster setup with different discovery mechanisms
Module 3: Basic Cache Operations
Cache API fundamentals
CRUD operations (put, get, remove, replace)
Cache modes: PARTITIONED, REPLICATED, LOCAL
Synchronous vs. asynchronous operations
Batch operations and performance considerations
Lab: Implementing basic cache operations with different cache modes
Module 4: Configuration and Deployment
XML vs. programmatic configuration
Spring Boot integration basics
Cache configuration parameters
Node and cluster configuration best practices
Basic monitoring and logging setup
Lab: Configure caches with different settings and Spring Boot integration
Module 5: Data Modeling and Persistence
Data modeling best practices for Ignite
Affinity keys and colocation strategies
Native persistence layer overview
Write-through, write-behind, and read-through patterns
Integration with external databases
Lab: Implement data models with proper affinity keys and persistence configuration
Module 6: SQL and Indexing
SQL support in Ignite (DDL, DML, DQL)
Creating and managing indexes
Query performance optimization
JDBC driver usage
Distributed joins and their implications
Lab: Create tables, indexes, and perform complex queries
Module 7: Transactions and ACID Properties
Transaction concepts in distributed systems
Ignite transaction models (PESSIMISTIC, OPTIMISTIC)
Isolation levels and consistency guarantees
Deadlock detection and resolution
Transaction best practices
Lab: Implement transactional operations with different isolation levels
Module 8: Advanced Caching Patterns
Cache-aside, write-through, write-behind patterns
Near caches and client-side caching
Expiry policies and eviction strategies
Cache entry processors for atomic operations
Event handling and continuous queries
Lab: Implement different caching patterns and event listeners
Module 9: Compute Grid Fundamentals
Distributed computing concepts
Compute closures and jobs
Task execution and load balancing
Affinity-aware computing for performance
MapReduce operations
Lab: Implement distributed computing tasks with affinity awareness
Module 10: Integration and Connectivity
REST API usage and web console
Integration with Spring Framework
Kafka connector and streaming data
Hibernate L2 cache integration
Client vs. server node configurations
Lab: Set up REST API access and integrate with external systems
Module 11: Performance Tuning and Monitoring
JVM tuning for Ignite workloads
Memory management and garbage collection
Performance metrics and monitoring tools
Benchmarking and load testing strategies
Common performance anti-patterns
Lab: Performance analysis and tuning exercise with real workloads
Module 12: Production Deployment and Best Practices
Cluster sizing and capacity planning
Security configuration (authentication, SSL/TLS)
Backup and disaster recovery strategies
Rolling updates and maintenance procedures
Troubleshooting common issues
Container deployment (Docker, Kubernetes basics)
Lab: Deploy a production-ready cluster with security and monitoring
Course Materials and Prerequisites
Prerequisites:
Java programming experienceÂ
Basic understanding of databases and SQL
Familiarity with distributed systems concepts (helpful but not required)
Development environment with Java 8+ and Maven/Gradle