
Learn Apache Kafka for distributed systems—from installation and core concepts like brokers, topics, and partitions to producers and consumers—with CLI practice and C#, Java, and Python examples.
You will be able to understand one of the biggest problems of modern-day applications and what type of issues they bring to the table
We will talk about attributes like scaling, high performance, data and log aggregation, data transformation and processing, etc.
Install and run Apache Kafka with Zookeeper on Windows, macOS, and Linux using Docker and docker compose, configuring images, containers, and environment variables.
Connect to Apache Kafka using two GUI tools, Kafka UI and Offset Explorer, via docker compose. Install, configure, and test connections to Zookeeper and brokers without the command line interface.
Install and configure Apache Kafka across Windows, WSL2, and Docker, noting native Windows limitations, Java JDK requirements, topic and segment deletion issues, and access via Kafka UI and Offset Explorer.
Explore the core concepts of Apache Kafka, including producers, brokers, clusters, and consumers, and see how asynchronous microservice communication uses messages to enable loosely coupled data flows.
Cover cluster and brokers in Apache Kafka by showing how multiple brokers enable parallel requests, vertical and horizontal scaling, and high throughput, with each broker storing part of data.
Explain why multiple brokers in a Kafka cluster improve scalability, fault tolerance, and load balancing through data replication and durability, with hands-on Docker Compose deployment and Kafka UI.
Simulate a real-world scenario with Kafka topics and partitions; account and customer microservices publish account and customer events to topics, while the report microservice consumes and a third-party service subscribes.
Understand how Kafka broker discovery uses bootstrap servers and cluster metadata to route producers and consumers to the right brokers, with topics and partitions, across the cluster.
Learn to manage kafka topics via the topics cli: create, list, and describe topics with a bootstrap server, and understand partitions and replication.
Learn how Kafka partitions define topic parallelism by configuring num.partitions in server.properties. Topics are created with the defined partition count and can be validated by describing the topic.
This lecture explains how Kafka consumers fetch from nearest partitions or replicas starting in version 2.4, reducing latency, improving scalability and availability through nearest replica access.
Demonstrates configuring topic replication factor with Kafka CLI on a multi-broker Docker setup. Shows creating topics with replication factor two and handling errors when replication factor exceeds available brokers.
Review key kafka concepts like clusters, brokers, replication factors, and leader partitions; explain metadata exchange and how producers and consumers interact with leaders and nearest replicas.
Learn how Kafka producers trigger data creation, produce messages with optional keys to specific partitions using round robin or hashing, and leverage broker metadata for efficient batching.
Master the Kafka console producer on the CLI to create topics, produce messages (with and without keys), and manage case sensitivity, partitions, and replication factors across brokers.
Learn how the producer serializes data into byte arrays before sending to Kafka, using string, JSON, Avro, or Protobuf serializers; understand broker storage and consumer deserialization.
Explore producer partitioner strategies in Apache Kafka, including default, round robin, sticky, and custom partitioners, and how keys, hashing, batch size, and linger settings influence partition distribution.
Learn practical kafka consumption via the command line: create topics, produce to partitions, and read from beginning or specific partitions and offsets to observe ordered versus unordered delivery.
Explore how consumer delivery semantics ensure reliable data processing in Kafka, detailing at most once, at least once, and exact once within partitions, consumer offsets, and batches.
Kafka provides partition distribution strategies, including round-robin, default partitioner, and uniform sticky partitioner, plus rack awareness and leader balancing, distributing partitions across brokers based on partition count and keys.
Explore building a .NET console app and an ASP.NET Core microservice to demonstrate producer and consumer patterns with Apache Kafka, using Confluent.Kafka, and event-driven messaging with key/value typing.
Explore producer retries in Kafka, including how acks (1 and -1) affect broker acknowledgement and how retry backoff milliseconds, message send max retries, and request timeout milliseconds are configured.
Master primitive serialization in Apache Kafka by using the ISerializer for keys and values, and switch to IAsyncSerializer for complex types such as protobuf, avro, or json.
Configure Kafka consumers in distributed systems by mastering consumer configs, client ID, and group IDs with static membership. Explore SSL and SASL security options.
Create a custom async deserializer for Apache Kafka by implementing IAsyncDeserializer to deserialize json data asynchronously using System.Text.Json, enabling producer and consumer data processing.
Configure advanced consumer settings by managing the heartbeat thread and pull thread, setting the heartbeat interval, session timeout, max poll interval, and fetch min and max bytes for group coordination.
Are you ready to embark on a journey into the heart of real-time data streaming and processing?
Welcome to "Apache Kafka for Distributed Systems" a comprehensive Udemy course that will take you from a novice to a proficient Apache Kafka practitioner. Whether you are a software developer, data engineer, or simply an enthusiast eager to explore the world of event-driven architectures, this course is your gateway to understanding, implementing, and excelling in Apache Kafka.
Apache Kafka is a distributed streaming platform that can handle large volumes of data in real time. It is a popular choice for building real-time data pipelines, event streaming applications, and log aggregation systems.
Kafka is a game-changer in the world of data streaming, and mastering it can significantly elevate your career. Join us on this journey to become a Kafka expert and unlock new opportunities in the rapidly evolving data landscape. Enroll today and take the first step toward mastering Apache Kafka!
This course is designed to teach you everything you need to know to develop Kafka applications using any programming language. I have chosen C# as a language to demonstrate how to apply all the learned information but the course in general doesn't depend on any programming language.
You will learn about the Kafka architecture, core concepts, and operations. You will also develop hands-on experience with building and running Kafka producers and consumers.
What You Will Learn
Understand the Kafka architecture and core concepts
Develop safe and high-performance Kafka producers and Consumers
Use the Kafka CLI to interact with Kafka without any programming languages
Gain a deep understanding of Kafka concepts such as Cluster, Broker, Topics, Partitions, Producers, Consumers
Learn and master how consumers work together in a consumer group
Become proficient in advanced topics like partition distribution strategies, RAFT, consumer rebalancing strategies
Get all the required information to build your microservice applications using Apache Kafka
Apply all the learned information to any programming language, particularly C#/.NET
Prepare for the Confluent Certified Developer for Apache Kafka (CCDAK) certification
Why Choose This Course:
Clear, concise explanations of Kafka concepts
Practical examples to reinforce your learning
Expert guidance on building Kafka applications in C#/.NET
Complete Kafka tour to start your distributed journey
Instructor support and a vibrant online community to address your queries
Who Should Take This Course
Anyone looking to learn how Apache Kafka works
Developers who want to learn Apache Kafka to build distributed applications
Architects who want to apply Apache Kafka to their solution architecture
C#/Java developers looking for hands-on tutorials to learn and integrate Kafka into their projects
This course assumes no prior Kafka knowledge
You will learn from an experienced Kafka instructor who will share his insights and best practices.
Enroll today and start your journey to becoming a Kafka expert!