What you'll learn
- Apache Kafka Foundation and Kafka Architecture
- Creating Streams using Kafka Producer APIs
- Designing, Developing and Testing Real-time Stream Processing Applications using Kafka Streams Library
- Kafka Streams Architecture, Streams DSL, Processor API and Exactly Once Processing in Apache Kafka
- Auto-generating Java Objects from JSON Schema definition, Serializing, Deserializing and working with JSON messages without Schema Registry.
- Auto-generating Java Objects from AVRO Schema definition, Serializing, Deserializing and working with AVRO messages using Confluent Schema Registry.
- Unit Testing and Integration Testing your Kafka Streams Application.
- Supporting Microservices architecture and implementing Kafka Streams Interactive Query.
Programming Knowledge Using Java Programming Language
Familiarity with Java 8 Lambda
A Recent 64-bit Windows/Mac/Linux Machine with 4 GB RAM (8 GB Recommended)
This course does not require any prior knowledge of Apache Kafka. We have taken enough care to explain all necessary and complex Kafka Architecture concepts to help you come up to speed and grasp the content of this course.
About the Course
I am creating Kafka Streams - Real-time Stream Processing to help you understand the stream processing in general and apply that knowledge to Kafka Streams Programming. This course is based on my book on the same subject with the same title. My Book is already published and is available with all major online retailers as an eBook and Paperback.
My approach to creating this course is a progressive common-sense approach to teaching a complex subject. By using this unique approach, I will help you to apply your general ability to perceive, understand, and reason the concepts progressively that I am explaining in this course.
Who should take this Course?
Kafka Streams - Real-time Stream Processing course is designed for software engineers willing to develop a stream processing application using the Kafka Streams library. I am also creating this course for data architects and data engineers who are responsible for designing and building the organization’s data-centric infrastructure. Another group of people is the managers and architects who do not directly work with Kafka implementation, but they work with the people who implement Kafka Streams at the ground level.
Kafka Version used in the Course
This course is using the Kafka Streams library available in Apache Kafka 2.x. I have tested all the source code and examples used in this course on Apache Kafka 2.3 open source distribution. Some examples of this course also make use of the Confluent Community Version of Kafka. We will be using Confluent Community Version to explain and demonstrate functionalities that are only available in the Confluent Platform, such as Schema Registry and Avro Serdes.
Source Code, Development IDE, Build Tool, Logging, and Testing Tools
This course is fully example-driven, and I will be creating many examples in the class. The source code files for all the examples are included in your study material.
This course will be making extensive use of IntelliJ IDEA as the preferred development IDE. However, based on your prior experience, you should be able to work with any other IDE designed for Java application development.
This course will be using Apache Maven as the preferred build tool. However, based on your prior experience, you should be able to use any other build tool designed for Java applications.
This course also makes use of Log4J2 to teach you industry-standard log implementation in your application.
We will be using JUnit5, which is the latest version of JUnit for implementing Unit Test Cases.
Example and Exercises
Working examples and exercises are the most critical tool to convert your knowledge into a skill. I have already included a lot of examples in the course. This course also consists of objective questions and some programming assignments as and when appropriate. These exercises will help you to validate and check your concepts and apply your learning to solve programming problems.
Who this course is for:
- Software Engineers and Architects who are willing to design and develop a Stream Processing Application using Kafka Streams Library.
- Java Programmers aspiring to learn everything necessary to start implementing real-time streaming applications using Apache Kafka
About the instructor
Prashant Kumar Pandey is passionate about helping people to learn and grow in their career by bridging the gap between their existing and required skills. In his quest to fulfill this mission, he is authoring books, publishing technical articles, and creating training videos to help IT professionals and students succeed in the industry.
With over 18 years of experience in IT as a developer, architect, consultant, trainer, and mentor, he has worked with international software services organizations on various data-centric and Bigdata projects.
Prashant is a firm believer in lifelong continuous learning and skill development. To popularize the importance of lifelong continuous learning, he started publishing free training videos on his YouTube channel and conceptualized the idea of creating a Journal of his learning under the banner of Learning Journal.
He is the founder, lead author, and chief editor of the Learning Journal portal that offers various skill development courses, training, and technical articles since the beginning of the year 2018.