Learning To Use Kafka
This is a series of lessons to teach Scala developers at Banno how to use Kafka. Plenty of high-level, detail-overlooking, gentle introductions to Kafka already exist. However, there are certain details you need to know to use Kafka effectively. After completing these lessons, you will know a lot about Kafka and how to use it effectively when building our systems. Each lesson will likely take around 1 hour.
These are hands-on, active lessons. While there will be plenty of reading, there are also Scala code examples that you will run, and experiment with, in your own projects. If you don’t do the code exercises, you won’t get much out of this. You will also run a Kafka cluster, along with other useful tools, locally in Minikube.
Lessons
- Running all the things
- Basics of writing records to Kafka
- Basics of reading records from Kafka
- [WIP] Topic configs
- [WIP] Serialization using Avro and Schema Registry
- [WIP] Kafka and FS2
- [WIP] Exactly-Once and Transactions
- [WIP] Kafka Streams
- [WIP] KSQL
- [WIP] Kafka Connect and Debezium
- [WIP] Event-Driven Architecture
Help and Feedback
These lessons are a work-in-progress. If you ever need help, please ask in the #sig-kafka Slack channel.
Also, as you work through the lessons, please help us improve them by providing feedback in #sig-kafka. Does any code not work correctly? Is anything unclear? Too much detail, or not enough? Any Kafka-related subjects not in the list above that you want to learn about? Please let us know!