Skip to content

Commit

Permalink
Apache Kafka for Developers Workshop (2 days)
Browse files Browse the repository at this point in the history
  • Loading branch information
jaceklaskowski committed Nov 7, 2023
1 parent 0396a64 commit ced61dc
Show file tree
Hide file tree
Showing 3 changed files with 245 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

<title>Apache Kafka for Admins Workshop | 2 days</title>
<title>Apache Kafka for Administrators Workshop | 2 days</title>

<meta name="description" content="Apache Kafka for Admins Workshop | 2 days">
<meta name="description" content="Apache Kafka for Administrators Workshop | 2 days">
<meta name="author" content="Jacek Laskowski">

<link rel="stylesheet" href="reveal5/dist/reset.css">
Expand Down Expand Up @@ -38,7 +38,7 @@
<img width="14%" style="background:none; border:none; box-shadow:none;" data-src="images/kafka-logo.png">
<img width="10%" src="images/jacek_laskowski_20201229_200x200.png" style="border: 0">
</p>
<h1 style="font-size: 2.77em;">Apache Kafka<br>for Admins<br>Workshop <small>2 Days</small></h1>
<h1 style="font-size: 2.77em;">Apache Kafka<br>for Administrators<br>Workshop <small>2 Days</small></h1>

<h4 style="font-size: smaller;">
<a href="https://twitter.com/jaceklaskowski">@jaceklaskowski</a> /
Expand Down Expand Up @@ -81,7 +81,7 @@ <h4 style="font-size: smaller;">
<p>
Practical understanding of<br />
<b><span style="font-size: 200%">Apache Kafka</span></b><br />
for Administrators and Operations<br />
for Administrators<br />
</p>
</textarea>
</section>
Expand Down Expand Up @@ -196,6 +196,7 @@ <h2>Introduce Yourself</h2>
* Read [The Internals of Kafka Streams](https://books.japila.pl/kafka-streams-internals)
* Read [The Internals of ksqlDB](https://books.japila.pl/ksqldb-internals/)
* Follow [@jaceklaskowski](https://twitter.com/jaceklaskowski) on twitter (DMs open)
* Read my articles on [Medium](https://jaceklaskowski.medium.com/)
* Upvote [my questions and answers on StackOverflow](http://stackoverflow.com/users/1305344/jacek-laskowski)
* Contact me at **[email protected]**
</textarea>
Expand All @@ -214,7 +215,6 @@ <h2>Introduce Yourself</h2>
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
view: 'scroll',
hash: true,
pdf: true,
slideNumber: 'c/t',
Expand Down
238 changes: 238 additions & 0 deletions slides/00-kafka-dev.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,238 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

<title>Apache Kafka for Developers Workshop | 2 days</title>

<meta name="description" content="Apache Kafka for Developers Workshop | 2 days">
<meta name="author" content="Jacek Laskowski">

<link rel="stylesheet" href="reveal5/dist/reset.css">
<link rel="stylesheet" href="reveal5/dist/reveal.css">
<link rel="stylesheet" href="reveal5/dist/theme/beige.css">

<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="reveal5/plugin/highlight/monokai.css">

<!-- Jacek: custom formatting -->
<link rel="stylesheet" href="revealjs-css/jacek.css">
</head>

<body>
<div class="reveal">

<div class="footer">
<footer style="font-size: small;">
&copy; <a href="https://medium.com/@jaceklaskowski">Jacek Laskowski</a> 2023 / <a
href="https://twitter.com/jaceklaskowski">@JacekLaskowski</a>
/ [email protected]
</footer>
</div>

<div class="slides">

<section class="intro" data-transition="zoom" id="home">
<p>
<img width="14%" style="background:none; border:none; box-shadow:none;" data-src="images/kafka-logo.png">
<img width="10%" src="images/jacek_laskowski_20201229_200x200.png" style="border: 0">
</p>
<h1 style="font-size: 2.77em;">Apache Kafka<br>for Developers<br>Workshop <small>2 Days</small></h1>

<h4 style="font-size: smaller;">
<a href="https://twitter.com/jaceklaskowski">@jaceklaskowski</a> /
<a href="https://jaceklaskowski.medium.com/">Medium</a> /
<a href="https://stackoverflow.com/users/1305344/jacek-laskowski">StackOverflow</a> /
<a href="https://github.com/jaceklaskowski">GitHub</a> /
<a href="https://www.linkedin.com/in/jaceklaskowski/">LinkedIn</a>
<br>
The "Internals" Books: <a href="https://books.japila.pl">books.japila.pl</a>
</h4>
</section>

<section>
<section id="speaker" style="font-size: 85%" data-markdown>
<textarea data-template>
<p><img width="12%" src="images/jacek_laskowski_20201229_200x200.png" style="border: 0"></p>

* **Jacek Laskowski** is a Freelance Data Engineer
* Specializing in [Apache Spark](https://books.japila.pl/apache-spark-internals/), [Delta Lake](https://books.japila.pl/delta-lake-internals/), [Databricks](https://databricks.com), [Apache Kafka](https://books.japila.pl/kafka-internals/), [Kafka Streams](https://books.japila.pl/kafka-streams-internals/), [ksqlDB](https://books.japila.pl/ksqldb-internals/)
* Development | Consulting | Training | Mentoring | Speaking
* Best known by [The Internals Of](https://books.japila.pl) online books
* 📨 [email protected]
* Follow [@JacekLaskowski](https://twitter.com/jaceklaskowski) on twitter
* Connect on [LinkedIn](https://www.linkedin.com/in/jaceklaskowski/) ❤️
</textarea>
</section>
<section id="books" data-markdown>
<script type="text/template">
# "The Internals Of" Online Books

Head over to [https://books.japila.pl](https://books.japila.pl)
</script>
</section>
</section>

<section>
<section id="goal" data-markdown>
<textarea data-template>
# Goal
<p>
Practical understanding of<br />
<b><span style="font-size: 200%">Apache Kafka</span></b><br />
for Developers<br />
</p>
</textarea>
</section>
</section>

<section>
<section id="agenda" data-markdown>
<textarea data-template>
## Agenda

1. [Day 1](#/day1) &mdash; Kafka Fundamentals
1. [Day 2](#/day2) &mdash; Kafka Development
</textarea>
</section>

<section id="day1" data-markdown>
<textarea data-template>
<!-- .slide: style="font-size: 80%" -->
## Day 1 &mdash; Kafka Fundamentals

1. [The Essentials of Apache Kafka](apache-kafka-essentials.html)
* [Exercise: Installing and Running Kafka](https://jaceklaskowski.github.io/kafka-workshop/exercises/kafka-exercise-Installing-and-Running-Kafka-Broker.html)
* KRaft
1. Developing Kafka Applications
* [Exercise: Developing Kafka Producer](https://jaceklaskowski.github.io/kafka-workshop/exercises/kafka-exercise-Developing-Kafka-Producer.html)
* [Exercise: Developing Kafka Consumer](https://jaceklaskowski.github.io/kafka-workshop/exercises/kafka-exercise-Developing-Kafka-Consumer.html)
1. Kafka Client and Broker Configuration
* [Exercise: Configuring Multi-Broker Kafka Cluster](https://jaceklaskowski.github.io/kafka-workshop/exercises/kafka-exercise-Configuring-Multi-Broker-Kafka-Cluster.html)
1. [Managing Kafka Topics](kafka-managing-kafka-topics.html)
* [Exercise: Using kafka-topics with Multi-Broker Cluster](https://jaceklaskowski.github.io/kafka-workshop/exercises/kafka-exercise-Using-kafka-topics-with-Multi-Broker-Cluster.html)
</textarea>
</section>

<section id="day2" data-markdown>
<textarea data-template>
<!-- .slide: style="font-size: 80%" -->
## Day 2 &mdash; Kafka Development

1. [Kafka Consumers, Consumer Groups, and Partition Rebalancing](kafka-consumers-consumer-groups-and-partition-rebalancing.html)
* [Exercise: Using Consumer Group](https://jaceklaskowski.github.io/kafka-workshop/exercises/kafka-exercise-using-consumer-group.html)
* [Exercise: Partition Leader Election and Consumer Fail-Over](https://jaceklaskowski.github.io/kafka-workshop/exercises/kafka-exercise-partition-leader-election-and-consumer-fail-over.html)
1. [ConsumerRebalanceListener](https://kafka.apache.org/33/javadoc/org/apache/kafka/clients/consumer/ConsumerRebalanceListener.html)
1. [ConsumerPartitionAssignor](https://kafka.apache.org/33/javadoc/org/apache/kafka/clients/consumer/ConsumerPartitionAssignor.html)
1. [Partitioner](https://kafka.apache.org/33/javadoc/org/apache/kafka/clients/producer/Partitioner.html)
1. [Sending Records with Callback](https://kafka.apache.org/33/javadoc/org/apache/kafka/clients/producer/KafkaProducer.html#send-org.apache.kafka.clients.producer.ProducerRecord-org.apache.kafka.clients.producer.Callback-)
1. [Transactional Producer](https://books.japila.pl/kafka-internals/transactions/)
1. [Using (Confluent) Kafka with Docker](https://docs.confluent.io/platform/current/platform-quickstart.html#step-1-download-and-start-cp)
1. [Kafka Streams Essentials](kafka-streams-essentials.html)
1. [High-Level Streams DSL](kafka-streams-streams-dsl.html)
* [Exercise: Processing Record Stream with KStream](https://jaceklaskowski.github.io/kafka-workshop/exercises/kafka-streams/processing-record-stream-with-kstream.html)
* [Exercise: Joining KStream with KTable ("Currency Exchange")](https://jaceklaskowski.github.io/kafka-workshop/exercises/kafka-streams/kstream-join-ktable.html)
</textarea>
</section>

</section>

<section>
<section id="prerequisities">
<h1>Prerequisities</h1>
<h4>Be prepared to get the most out of the workshop</h4>
</section>
<section id="prerequisities-experience">
<h2>Prerequisities / Experience</h2>
<ol>
<li>Some familiarity with messaging systems</li>
<li>Experience developing applications in Java (or Scala)</li>
<li>Experience with shell / command line</li>
</ol>
</section>
<section id="prerequisities-to-be-installed">
<h2>Prerequisities / To Be Installed</h2>
<ul>
<li>Linux or macOS (preferred)
<ul>
<li>Windows (acceptable)</li>
</ul>
</li>
<li><a href="https://www.jetbrains.com/idea/">IntelliJ IDEA</a></li>
<li>Java 17 (JDK)
<ul>
<li><a href="https://adoptium.net/temurin/releases/?version=17">Eclipse Temurin</a> or compatible</li>
</ul>
</li>
<li><a href="https://docs.docker.com/engine/install/">Docker</a></li>
</ul>
</section>
</section>

<section>
<section id="in-da-clazz">
<h1>In-Class Preparations</h1>
<h4>Make Instructor's Life Slightly Easier. Thanks!</h4>
</section>
<section id="introduce-yourself">
<h2>Introduce Yourself</h2>
<ol>
<li>First name</li>
<li>What's your experience with Kafka?</li>
<li>Any development experience with Kafka?</li>
<li>What are your expectations from the workshop?</li>
<li>Any fun facts? 😉</li>
</ol>
</section>
</section>

<section style="text-align: left" data-markdown id="questions">
<textarea data-template>
# Questions?

* Read [The Internals of Apache Kafka](https://books.japila.pl/kafka-internals/)
* Read [The Internals of Kafka Streams](https://books.japila.pl/kafka-streams-internals)
* Read [The Internals of ksqlDB](https://books.japila.pl/ksqldb-internals/)
* Follow [@jaceklaskowski](https://twitter.com/jaceklaskowski) on twitter (DMs open)
* Read my articles on [Medium](https://jaceklaskowski.medium.com/)
* Upvote [my questions and answers on StackOverflow](http://stackoverflow.com/users/1305344/jacek-laskowski)
* Contact me at **[email protected]**
</textarea>
</section>

</div>
</div>

<script src="reveal5/dist/reveal.js"></script>
<script src="reveal5/plugin/notes/notes.js"></script>
<script src="reveal5/plugin/markdown/markdown.js"></script>
<script src="reveal5/plugin/highlight/highlight.js"></script>
<script src="reveal5/plugin/zoom/zoom.js"></script>
<script>
// More info about config & dependencies:
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
hash: true,
pdf: true,
slideNumber: 'c/t',
showSlideNumber: 'speaker',
// Learn about plugins: https://revealjs.com/plugins/
plugins: [RevealMarkdown, RevealHighlight, RevealNotes, RevealZoom]
});
</script>
<script>
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date(); a = s.createElement(o),
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');

ga('create', 'UA-45999426-3', 'auto');
ga('send', 'pageview');

</script>
</body>
</html>
3 changes: 2 additions & 1 deletion slides/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

## Table of Contents

1. [Apache Kafka for Admins Workshop (2 days)](00_agenda-2-days-Apache-Kafka-Admins-Workshop.html) &mdash; online
1. [Apache Kafka for Developers Workshop (2 days)](00-kafka-dev.html) &mdash; online
1. [Apache Kafka for Administrators Workshop (2 days)](00-kafka-admin.html) &mdash; online
1. [Apache Kafka for Admins and Ops Workshop (2 days)](https://jaceklaskowski.github.io/kafka-workshop/slides/00_agenda-2-days-Apache-Kafka-Admins-Ops-Workshop.html) &mdash; [Toruń, Poland](https://en.wikipedia.org/wiki/Toru%C5%84), 18-19 September 2023
1. [Stream Processing with Apache Kafka Workshop (2 days)](https://jaceklaskowski.github.io/kafka-workshop/slides/00_agenda-2-days-Apache-Kafka-Workshop.html) &mdash; online, 13-14 December 2022
1. [Stream Processing with Apache Kafka Workshop (2 days)](https://jaceklaskowski.github.io/kafka-workshop/slides/00_agenda-2-days-Apache-Kafka-Workshop.html) &mdash; online, 29-30 November 2022
Expand Down

0 comments on commit ced61dc

Please sign in to comment.