# WWCode Dublin - Kafka Workshop

### What is Kafka ?&#x20;

Kafka is a highly distributed and scalable system that offers high throughput and allows you publish messages to a particular location called Topic, from the other side other Services and Systems will be able to consume those published messages by subscribing to the topic(s) that are interested to consume from and do its processing as they would like to.&#x20;

![Kafka as a Unified Log](https://451828414-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LL_DW0n_i9-HTUCj39P%2F-LLtK91AQXJFon4zEDUz%2F-LLtM38Q9yZBoxw7v5z0%2FScreen%20Shot%202018-09-08%20at%2014.24.47.png?alt=media\&token=59a91b5f-88fa-4439-8691-7debc57e167d)

Kafka, was created  by Jay Krepps when Working on LinkedIn in early January 2011 and progressively overtime it's been defined as:&#x20;

> * Publish/subscribe messaging system
> * A distributed commit log
> * Distributing streaming platform

### Kafka Use Cases

There is many use cases for Kafka, but as stated on its documentation let's stick to the 2 main use cases:&#x20;

* Building real-time streaming data pipelines that reliably get data between systems or applications
* Building real-time streaming applications that transform or react to the streams of data

### What Kafka is not for&#x20;

* Synchronous communication
* Messages delivery to a particular location, i.e server X
* Long term storage&#x20;

On the following sections we will go through the basics of Kafka and its components by using:

* CLI ( Command Line Interface ) embedded with the Kafka binaries&#x20;
* Python client for the Apache Kafka

But first, Let's get the environment setup if you haven't done it yet :-)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wwcode-dublin.gitbook.io/kafka-workshop/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
