We may earn an affiliate commission when you visit our partners.
Course image
Akash Nigam

Learn about Infinispan in-memory data caching, different types of Caches, Cache Manager API, Clustering, Jgroups custom configuration, Cache Modes, Listeners and Notifications and Async API.

Learn by watching these concepts being implemented in real time to create a multi-node application and then finally deploying and testing the same application in AWS.

Enroll now

What's inside

Learning objectives

  • You will be able to setup, configure, deploy and test the infinispan in-memory cache in a distributed (multi-node) java application.
  • Customise jgroups protocol for node discovery and communication between nodes running the application.
  • Deploy and test the application on aws infrastructure.
  • And you will get to know about different types of caches, modes, and some advance features of infinispan, working in a real world application

Syllabus

A quick introduction to Infinispan and how to setup the project for a demo app
Hello from Akash

This video provides a sneak peek into final output - a clustered application on 2 nodes in AWS.

Read more

In this lecture,

  • We learn about what is INFINISPAN,

  • And how and when should you use it

In this lecture,

  • We will setup a java application, which we will use all along the course to try and test the concepts we learn.

  • Attached are the pom.xml and jboss-web.xml

In this lecture

  • We are going to make our application - process and return a list of messages to be shown on a UI, from a sluggish and a low performing database

  • And then improve the performance of the app by making use of the default cache, which is provided right out of the box from infinispan

In this lecture,

  • We will see how instead of a default cache, we can setup, configure and make use of a custom cache and

  • How a custom cache enables us to provide our own custom implementation for the cache behaviour.

In this lecture,

  • We are introduced with the Cache Manager and why we need it.

In this lecture,

  • We will see how to setup the Cache Manager and

  • Clean up the default and custom cache logic since the same (or way more) can now be achieved using the Cache Manager API.

In this lecture,

  • We see how we can customise out Embedded Cache Manager for use in non-clustered mode

  • Learn about eviction in the attached resource

In this lecture,

  • We are introduced with the concept of CLUSTERING in infinispan.

In this lecture,

  1. We are introduced with the concept of JGROUPS

In this lecture,

  • We get to learn how to setup our AWS S3 bucket for node discovery

  • Adding an AWS Policy for allowing access to the bucket

  • Adding an AWS IAM User to access the bucket data for our application

  • Allowing AWS SDK to access user credentials to be used by our application

Find the attached

  • S3 Policy document (remember to change the ARN of your bucket)

  • Sample AWS Credentials File (remember to add your aws_access_key_id and aws_secret_access_key)

  • The custom jgroups-ec2.xml (remember to change the region_name and bucket_name)

In this lecture,

  • We are going to learn how to setup our applications Nodes on AWS infrastructure

  • And quickly see how to setup the Security Group (firewall), Elastic IP, EC2 instances, Wildfly server and how to transfer deployment artifacts

Extras :

  • Use the attached resource to setup a node on AWS with following

    • Change key permission, login, update OS, install java, download and extract wildfly, and standalone configuration change.

    • You can use a markdown reader to copy the content of the file to it and see the file with better visuals (use https://stackedit.io/app)

In this lecture,

  • We are going to test and see the cache clustering happening in the real time on our application nodes in AWS

  • Check the node discovery file in S3 being added/updated by the application nodes and cache data getting shared between them

  • Topology changes and updation

In this lecture,

  • We will learn how to event Listeners and Notifications work and how to register these to the cache manager

  • How to make use of Asynchronous API

In this lecture,

  • We learn about 4 cache modes provided to us by infinispan

  • Their usage and when to use which

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Explores Infinispan, which is a widely used in-memory data grid solution for Java applications, offering high performance and scalability
Demonstrates deploying and testing the application on AWS, which is a valuable skill for cloud engineers working with distributed systems
Covers JGroups custom configuration, which is essential for customizing node discovery and communication in clustered environments
Requires familiarity with AWS S3, EC2, and Wildfly, which may pose a barrier for learners without prior cloud experience
Teaches Infinispan, which is useful for improving application performance by caching data in memory and reducing database load
Explores different cache modes, listeners, notifications, and Async API, which are advanced features for optimizing cache behavior

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Deep dive into infinispan caching

According to students, this course provides a solid foundation in using Infinispan for in-memory data caching. Learners particularly appreciate the focus on practical implementation, including setting up and deploying a clustered Java application on AWS. The demonstrations showing real-time clustering and cache data sharing between nodes are highlighted as particularly helpful. While the course covers various aspects like different cache types, Cache Manager API, Jgroups configuration, and cache modes, some learners suggest that certain topics could benefit from more in-depth explanations or address more advanced use cases.
Introduces fundamental Infinispan features and APIs.
"I gained a good understanding of Default and Custom caches, and the Cache Manager API."
"The course effectively introduces the core concepts of Infinispan and Jgroups."
"Learning about different cache modes and the Async API was helpful."
"The explanation of what Infinispan is and when to use it was a good starting point."
Detailed steps for setting up clustered caches on AWS.
"The sections on setting up AWS S3 for node discovery and deploying nodes were clear and practical."
"Seeing the cache clustering happening in real time on AWS nodes was a highlight."
"The provided configuration files and steps for AWS setup were very useful."
"The guide for setting up a node on AWS with Wildfly was comprehensive."
Emphasizes real-world implementation and deployment.
"The focus on building and deploying a multi-node application on AWS was extremely valuable."
"Learning by watching concepts implemented in real time is a great approach."
"The hands-on part, setting up nodes and testing clustering, really solidified my understanding."
"I can immediately apply what I learned about deploying Infinispan in a distributed environment."
Some topics might need more advanced coverage.
"Could benefit from more in-depth coverage of advanced configuration options."
"Some topics felt a bit rushed; I would have liked more detail."
"While a good introduction, it doesn't cover all advanced Infinispan features."
"I was hoping for more coverage on optimization or complex use cases."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in In-memory Infinispan Caching with these activities:
Review Distributed Systems Concepts
Reinforce your understanding of distributed systems concepts, which are fundamental to understanding Infinispan clustering and data distribution.
Browse courses on Distributed Systems
Show steps
  • Review key concepts like consistency, availability, and partitioning.
  • Study common distributed system architectures.
  • Familiarize yourself with consensus algorithms.
Read 'Java Concurrency in Practice'
Improve your understanding of concurrency, which is crucial for working with in-memory caches like Infinispan.
Show steps
  • Obtain a copy of 'Java Concurrency in Practice'.
  • Read the chapters on threads, locks, and concurrent collections.
  • Relate the concepts to Infinispan's concurrency model.
Read 'Infinispan Data Grid Platform'
Deepen your understanding of Infinispan's architecture and features by reading a dedicated book on the subject.
View Melania on Amazon
Show steps
  • Obtain a copy of 'Infinispan Data Grid Platform'.
  • Read the chapters relevant to clustering and cache modes.
  • Take notes on key concepts and configurations.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Configure Infinispan Cache Modes
Practice configuring different Infinispan cache modes (e.g., replicated, distributed, invalidation) to understand their trade-offs and performance characteristics.
Show steps
  • Set up a local Infinispan environment.
  • Configure different cache modes in the Infinispan configuration file.
  • Test the performance of each cache mode with sample data.
  • Analyze the results and compare the performance of each mode.
Build a Distributed Session Management System
Apply your knowledge by building a distributed session management system using Infinispan to store and replicate session data across multiple application servers.
Show steps
  • Design the architecture of the session management system.
  • Implement the session storage and retrieval logic using Infinispan.
  • Configure Infinispan for distributed caching and replication.
  • Test the system with multiple concurrent users.
Write a Blog Post on Infinispan Clustering
Solidify your understanding of Infinispan clustering by writing a blog post explaining the concepts, configuration, and benefits of clustering.
Show steps
  • Research Infinispan clustering concepts and configuration options.
  • Write a clear and concise blog post explaining the key concepts.
  • Include code examples and diagrams to illustrate the concepts.
  • Publish the blog post on a personal blog or online platform.
Contribute to the Infinispan Project
Deepen your expertise by contributing to the Infinispan open-source project, such as reporting bugs, writing documentation, or contributing code.
Show steps
  • Explore the Infinispan project on GitHub.
  • Identify areas where you can contribute, such as bug fixes or documentation improvements.
  • Submit a pull request with your changes.
  • Participate in the Infinispan community discussions.

Career center

Learners who complete In-memory Infinispan Caching will develop knowledge and skills that may be useful to these careers:
Backend Developer
Backend developers build and maintain the server-side logic of applications, and caching is a critical aspect of backend performance. This course is very relevant for backend developers because it teaches how to use Infinispan for in-memory caching. The content helps backend developers understand how to improve application performance by caching frequently accessed data. The course's practical examples, such as setting up custom caches and deploying to AWS, provide valuable hands-on experience. Backend developers will get the most out of learning the material taught in this course.
Software Engineer
A software engineer often works with in-memory data caching solutions like Infinispan to improve application performance. This course helps software engineers understand how to set up, configure, deploy, and test the Infinispan in-memory cache in a distributed application. The course's focus on clustering and deploying applications on AWS infrastructure directly translates to tasks a software engineer may encounter. Concepts like customising JGroups protocol for node discovery, managing different cache modes, and using listeners and notifications are invaluable for engineers building high-performance applications. This course gives you a taste of working through a real-world clustered application, which will be useful to your career as a software engineer.
Application Developer
Application developers are responsible for building and maintaining software applications, and caching is a common technique used to improve application performance. This course is very useful to application developers because it covers how to set up, configure, and use Infinispan in-memory caching. This course is very practical, with examples of setting up different cash types, customising JGroups and deploying to AWS. This course helps application developers incorporate high-performance caching strategies into their applications.
Cloud Engineer
Cloud engineers are responsible for designing, building, and maintaining cloud infrastructure, and caching is a critical component. This course is directly relevant to a cloud engineer due to its focus on deploying and testing an Infinispan application on AWS. The course provides practical experience in setting up AWS S3 buckets for node discovery and configuring security groups. Understanding JGroups custom configuration and various cache modes is essential for optimizing cloud-based applications. Cloud engineers can benefit from the knowledge of how to customise the Embedded Cache Manager, event listeners and notifications, and the Async API. This course helps cloud engineers build a foundation.
Site Reliability Engineer
Site reliability engineers (SREs) are responsible for ensuring the reliability and performance of systems. This course provides the knowledge needed to optimize caching using Infinispan, ensuring applications are responsive and reliable. The course's coverage of clustering and JGroups custom configuration is particularly relevant for SREs managing distributed systems. By understanding how to deploy and test applications on AWS, SREs can ensure optimal performance. SREs can benefit from learning the hands-on skills shown in this course.
DevOps Engineer
DevOps engineers need to understand how to deploy and manage applications efficiently, and caching plays a significant role. This course is extremely relevant for a DevOps engineer because it covers the deployment and testing of an Infinispan application on AWS. In particular, the course's emphasis on clustering, configuring JGroups, and setting up AWS infrastructure directly aligns with the responsibilities of a DevOps engineer. This course helps a DevOps engineer understand how to automate and optimize the deployment of cache-enabled applications. The practical experience gained from this course will be invaluable for a DevOps engineer.
Technical Lead
A technical lead guides a team of developers and makes key technical decisions, often involving performance optimization. This course gives a technical lead the knowledge to guide their team in implementing Infinispan caching to create high-performance applications. The course's focus on clustering and deploying applications on AWS is valuable for a technical lead overseeing cloud-based projects. This material enables a technical lead to make informed decisions about caching strategies and guide the team effectively. The course's practical approach to setting up and testing Infinispan on AWS is invaluable.
Cloud Solutions Architect
Cloud solutions architects design and implement cloud-based solutions, making caching decisions to optimize performance and cost. This course helps cloud solutions architects understand how to use Infinispan for in-memory caching in cloud environments. The course's hands-on approach to deploying and testing applications on AWS provides provides practical experience. Cloud solutions architects can use this knowledge to design efficient and scalable cloud-based solutions. Learning the material in this course will be useful.
System Architect
System architects design and oversee the implementation of complex systems, making decisions about technology choices, including caching solutions. This course can be a valuable tool for a system architect who wishes to understand how Infinispan and its features can be applied to improve system performance and scalability. The course's coverage of clustering, cache modes, and JGroups configuration provides the necessary knowledge for architects to make informed decisions about caching strategies. Understanding how to deploy and test applications on AWS adds an additional layer of practicality to the knowledge gained. Learning how to implement an application helps build a strong foundation for a system architect.
Data Architect
Data architects design and manage data storage and retrieval systems, often needing to optimize performance. This course teaches Data Architects about Infinispan and its advanced features, which can be directly applied to optimise data access patterns. The course's exploration of different cache modes, listeners, notifications, and asynchronous APIs provides Data Architects with the tools to design efficient data retrieval solutions. This course has practical implications for Data Architects.
Performance Engineer
Performance engineers are responsible for identifying and resolving performance bottlenecks in applications. This course may be useful for a performance engineer to understand how in-memory caching with Infinispan can be used to improve application performance. A performance engineer will benefit from the practical aspects of the course, particularly setting up caches, clustering and deploying on AWS. Learning about Listeners, Notifications, Async API and different Cache Modes may also be helpful for performance engineers.
Data Engineer
Data engineers are responsible for building and maintaining the infrastructure required for data storage and processing. This course is relevant to data engineers because it covers in-memory caching using Infinispan, which can be a valuable tool for improving the performance of data-intensive applications. The practical aspects of the course, such as deploying to AWS infrastructure and customising JGroups, are useful. Data engineers can use the content of this course to build and optimise data pipelines.
Database Administrator
Database administrators are responsible for managing and maintaining databases, and understanding caching strategies can help improve database performance. This course shows database administrators how to use Infinispan for in-memory caching, which can reduce the load on databases. Database administrators can use this course to learn how to set up and configure Infinispan in a distributed environment. By learning about cache modes, listeners, notifications, and Async API, database administrators can improve database scaling.
Principal Engineer
Principal engineers are senior technology leaders who are responsible for leading software projects. This course is relevant to principal engineers because Infinispan may be used as a solution in in large scale software and cloud projects. This course gives access to practical hands-on information that may be used to architect software and data solutions. You will find this course has valuable hands-on information.
Solutions Architect
Solutions architects design and implement complex solutions that meet business requirements. This course may be useful to solutions architects by providing insights into how in-memory caching with Infinispan can be used to improve application performance and scalability. Solutions architects can use this knowledge to design more efficient and cost-effective solutions. The practical aspects of the course, such as deploying to AWS, are helpful for understanding real-world implementation considerations. Solutions architects should consider taking this course to better understand data caching.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in In-memory Infinispan Caching.
Provides a deep dive into Java concurrency concepts, which are essential for understanding how Infinispan handles concurrent access to cached data. It covers topics such as threads, locks, and concurrent collections. While not specific to Infinispan, it provides valuable background knowledge for building high-performance, thread-safe applications that use Infinispan. This book is more valuable as additional reading to provide background knowledge.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser