Introduction to Kafka with Spring Boot
What you'll learn
- Learn what Kafka is and how it works
- How to install and run Kafka locally
- Create a Spring Boot application that integrates with Kafka
- Unit testing and Integration testing for Kafka
- Consuming and Producing messages with Spring Kafka
- Learn how to retry failed Kafka messages
- Spring Boot integration tests with the embedded Kafka broker
- Serialization and the different formats, including Strings and JSON
- Dead letter topics
- Learn all the core Kafka messaging concepts including messages, topics, partitions and keys
- Message ordering - ensuring your messages are consumed in the correct sequence
- Cover the important Spring and Spring Kafka annotations
- How to configure your Kafka Spring Beans
- How to use Wiremock to trigger failure scenarios that we can test
- Consumer groups, rebalancing, and consumer failover
- Understand the role of consumer offsets
- Use command line tools to send and receive messages and query the broker state
- Understand why Zookeeper is being replaced with KRaft
- Learn the key differences between other popular messaging brokers
Requirements
- Basic Java knowledge
- Basic Spring knowledge
- Java 17 (required for Spring Boot 3)
- Maven
Description
This is the course for learning Kafka, Java, with Spring and Spring Boot!
Our hands-on course is designed to teach you the concepts of Apache Kafka and demonstrates the advantages to be gained by using Spring Boot and the Spring framework.
By the end of the course you will have learned and used the techniques required of a production quality system that uses Apache Kafka.
On your learning journey you will cover:
Kafka Fundamentals
Unit Tests and Integration Testing using Embedded brokers
Failure concepts and how to handle them - Retries, Poison Pills, and Dead Letter Topics
Coding your own event driven services that communicate using Kafka.
And much more!
This course will take you as a developer who knows just the basics on Spring Boot and Java to being able to develop a fully functional, fully tested, application that connects with the Kafka messaging broker in order to send and receive messages.
In fact with our comprehensive code walkthroughs that start from scratch in writing our Spring Boot application you will be able to put together the application with no previous Spring Boot experience!
This course has been developed by a team of highly experienced Java Software Engineers and Kafka consultants working closely with John Thompson, the Spring Framework Guru - we understand what a developer needs from such a course - we have designed and implemented many Kafka systems that are in production today.
Code Samples
All the code that we walk through is available in the included git repositories for you to use as a starting point for your work, or for you to fork and extend as you begin to explore Kafka further. Along the way there are assignments enabling you to put in practice what you have been learning, to build out a fully rounded microservices architecture. We have accompanying articles on many of the Kafka concepts covered in the course - these go into greater depth providing you the opportunity to continue your learning and gain an advanced understanding on these areas.
** What real Students are saying about this course **
5 STARS - Fantastic course by Lydtech. I have learned Kafka and Spring boot from beginner to details.
5 STARS - This is a great course. I like the challenging quizzes and assignments. It is very focus on the characteristics of topics. The instructors usually respond to questions very quickly.
5 STARS - Very good course. I liked the structure a lot and how the topics build up on each other.
5 STARS - This was a really nice course, with a perfect mix of theory, code-along sections and individual assignments. I really enjoyed it!
5 STARS - Great introduction to Kafka Messaging, gives a lot of valuable insights and practical examples.
5 STARS - The course introduction has been clear and focused. It has set a good foundation on what I can expect in the course.
5 STARS - Great course to get introduced to Kafka with Spring boot. Loved that it reiterates on the concepts taught in the videos with quiz & hands-on exercises. I am pretty sure I will be revisiting the course again and will learn something new out of it.
5 STARS - Presentation and content is superbly done.
Inside this course you will learn about:
Kafka Background and Concepts:
The Kafka messaging broker
Key Kafka concepts including messages, keys, topics, partitions and offsets
The need for asynchronous communication
Comparison with other popular messaging brokers
Zookeeper vs KRaft
Consumer groups and rebalancing
Message Keys and Message ordering
Installing and Running Kafka:
Installing and running the broker locally (Linux/Mac)
Installing and running the broker locally on Windows using WSL
Using the Kafka command line tools
Sending and receiving messages
Spring Boot Application Development with Spring Kafka:
Creating the Spring Boot application with Spring Initializr
Spring Kafka APIs
Consuming messages using the KafkaListener, KafkaListenerContainerFactory and ConsumerFactory
Producing messages using the KafkaTemplate and ProducerFactory
Utilising Spring Kafka annotations leaving Spring to do the heavy lifting
Unit testing the Kafka consumer and producer with JUnit and Mockito
Integration testing with Spring Boot Test, Spring Kafka Test, and the embedded Kafka broker
Serializing and deserializing String and JSON messages
Avoiding poison pills with the correct error handling
Configuring Kafka Spring Beans programmatically vs in the application properties
Manual and automatic topic creation
Consumer group membership with shared vs duplicated message consumption
Consumer failover with multiple Spring Boot instances
Sending and receiving message keys
Ensuring related messages are ordered
Consuming multiple event types from the same topic
Configuring trusted packages
Retrying failed messages
Routing messages to the dead letter topic
Using Wiremock to trigger error scenarios
Course Extra - IntelliJ IDEA Ultimate
Students enrolling in the course can receive a free 4 month trial license to IntelliJ IDEA Ultimate! Get hands on experience using the Java IDE preferred by Spring Framework professionals!
Course Extra - Access to a Private Slack Community
You’re not just enrolling in a course --> You are joining a community learning Spring.
With your enrolment to the course, you can access an exclusive Slack community. Get help from the instructor and other Spring Framework Gurus from around the world - in real time! This community is only available to students enrolled in this course.
This is a very active Slack community with over 18,700 Spring Framework Gurus!
This is the largest online community of people learning Spring in the world.
With your enrolment, you can join this community of awesome gurus!
Closed Captioning / Subtitles
Closed captioning in English is available for all course videos!
PDF Downloads
All keynote presentations are available for you to download as PDFs.
Associated articles offering further detail on the topics covered throughout the course are available to download as PDFs. These include:
Writing and testing a Kafka Spring Boot application
Keys, partitions and message ordering
Consumer Group Rebalance
Consumer retry and Spring retry topics
Consuming message batches
Kafka JSON serialization
Managing poison pill messages
Single vs discrete Kafka topics
Lifetime Access
When you purchase this course, you will receive lifetime access! You can login anytime from anywhere to access the course content.
No Risk - Money Back Guarantee
You can buy this course with no risk. If you are unhappy with the course, for any reason, you can get a complete refund. The course has a 30 day Money Back Guarantee.
Who this course is for:
- This course is ideal for Java developers who wish to use Spring Boot to develop enterprise applications that use Kafka as the messaging broker for asynchronous event driven communication.
Instructors
Hi. I'm John.
I've been in the IT industry for over 25 years. Today, I specialize mainly in Java, the most successful and widely known programming language in use today. I also specialize with the Spring Framework, which the most popular open source application framework for building enterprise class applications on the Java platform. Just some of the organizations I've worked with include Visa, Kohls, Federal Home Loan Bank, and Belk Department Stores.
Through the courses I'm providing, I hope to leverage my years of experience to accelerate your learning of the Spring Framework. I'm not going to lie to you. The Spring Framework is a big framework. The environment for enterprise Java is even bigger. If you're new to Java, you have a lot to learn. I hope through the content on this web site I can accelerate your education of the Java and Spring landscape.
Hi. I'm Dan.
During my time in the software industry (over 1/4 century) I've worked with numerous technologies, the last decade has seen us have a focus on Microservices and an adoption of Event Driven Architectures, for this Java is our preferred language. Just some of the organisations I've worked with include Visa, Mastercard, IBM, and Western Union
I hope these courses will assist you in your Event Driven Microservices journey. Microservices and Events provide many benefits, but the benefits are accompanied by many complexities that often catch out the inexperienced. My hope is that these courses will equip you sufficiently so that you can avoid the pitfalls and have a successful and enjoyable journey.
Hi. I'm Rob.
I have been working in the software industry for 25 years, predominantly developing and architecting Java based applications using Spring Boot and the Spring Framework, and frequently using Kafka as the messaging broker for asynchronous communication. My work has spanned the Finance, Government and Telco domains, including working on projects at Visa, Pivotal, Vodafone and DVLA, and have financial software deployed at many of the leading bank and financial institutions around the world.
I hope that with these courses I can bring my many years of experience to help you on your journey to become an expert in these technologies as you grow your career in our industry.
Hi, I’m Rob
I’ve been in the IT industry for over 30 years working in numerous industries with world leading organisations including Visa, Mastercard, British Airways and Lockheed Martin.
I’ve worked with various technologies and languages over the years, mainly focussing in the last 10 years on Java, Spring and event driven architectures, utilising a number of broker technologies, most notably in recent years Apache Kafka.
Through these courses, I hope to pass on the wealth of experience I’ve gained over the many years, helping you to expand your knowledge and understanding of these technologies and to put that learning into practice throughout your career.