Close

2016-12-11

Kafka 101: Essential Core Concepts for Building Resilient Event-Driven Architectures

Kafka 101: Essential Core Concepts for Building Resilient Event-Driven Architectures

Apache Kafka is an open-source stream-processing software platform developed by the Apache Software Foundation, written in Scala and Java. The project aims to provide a unified, high-throughput, low-latency platform for real-time data feeds. It is horizontally scalable, fault-tolerant, and speedy.

The core concepts of Kafka are:

  1. Topics: A stream of messages belonging to a particular category is called a topic.
  2. Producers: Producers are the client applications that publish messages to a Kafka topic.
  3. Consumers: Consumers are the client applications that read messages from a Kafka topic.
  4. Brokers: A Kafka cluster is composed of multiple brokers. Each broker is a separate process that runs on a different machine.
  5. Zookeeper: Apache Zookeeper is used to manage the Kafka cluster. It is responsible for maintaining the brokers, topics, and partitions list.

Some limitations of Kafka include the following:

  1. It does not support random access to messages.
  2. It does not have built-in support for data transformation.
  3. It does not have a user-friendly interface for monitoring and managing the cluster.

Some competitors of Kafka include:

  1. RabbitMQ
  2. Amazon Kinesis
  3. Google Cloud Pub/Sub
  4. Apache Flume

Some advantages of Kafka include the following:

  1. High throughput: Kafka can handle high throughput with low latency.
  2. Scalability: Kafka is horizontally scalable, which can drive increased traffic by adding more brokers to the cluster.
  3. Durability: Kafka persists all published messages to disk, providing durability in server failures.
  4. Fault tolerance: Kafka is designed to be fault-tolerant, meaning that it can continue to operate even when some of its servers fail.

In this session, we will cover the following things.

  • Producer
  • Consumer
  • Broker
  • Cluster
  • Topic
  • Partitions
  • Offset
  • Consumer groups
Kafka Core Concepts

We also cover a high-level example of the Kafka use case.