-
Notifications
You must be signed in to change notification settings - Fork 29
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Apache Kafka for Developers Workshop (2 days)
- Loading branch information
1 parent
0396a64
commit ced61dc
Showing
3 changed files
with
245 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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"> | ||
|
@@ -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> / | ||
|
@@ -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> | ||
|
@@ -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> | ||
|
@@ -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', | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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;"> | ||
© <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) — Kafka Fundamentals | ||
1. [Day 2](#/day2) — Kafka Development | ||
</textarea> | ||
</section> | ||
|
||
<section id="day1" data-markdown> | ||
<textarea data-template> | ||
<!-- .slide: style="font-size: 80%" --> | ||
## Day 1 — 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 — 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> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters