# 👨‍🎓 My Journey Learning Go, and using it with Kafka

**URL:** <https://forum.confluent.io/t/my-journey-learning-go-and-using-it-with-kafka/160>\
**Category:** Non-Java Clients\
**Created:** [17 November 2020 12:33 UTC](https://forum.confluent.io/t/my-journey-learning-go-and-using-it-with-kafka/160 "2020-11-17T12:33:55Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![rmoff](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.confluent.io/rmoff/32/3_2.png) [@rmoff](https://forum.confluent.io/u/rmoff)\
**Post date:** [17 November 2020 12:33 UTC](https://forum.confluent.io/t/my-journey-learning-go-and-using-it-with-kafka/160/1 "2020-11-17T12:33:55Z")

</div>

_With the first leg of my journey with Go [done](https://rmoff.net/2020/07/03/learning-golang-some-rough-notes-s01e10-concurrency-web-crawler/) (starting from a [very rudimentary base](https://rmoff.net/2020/06/25/learning-golang-some-rough-notes-s01e00/)), the next step for me was to bring it into my current area of interest and work - Apache Kafka._

_There are several client libraries available. I’m going to use the [the Confluent Go client](https://docs.confluent.io/current/clients/go.html) for now, and if I feel the need later on might explore the others. The [API docs](https://docs.confluent.io/current/clients/confluent-kafka-go/index.html) are comprehensive as are the [example code snippets](https://github.com/confluentinc/confluent-kafka-go/tree/master/examples) and some showing [how to use the Go client with Confluent Cloud](https://github.com/confluentinc/examples/tree/5.5.1-post/clients/cloud/go)._

_Here I’m going to try and apply what I’ve learnt so far to the Kafka client and build my understanding of it from the ground up (instead of blindly copy & pasting which is effective but less educational than taking something apart and reassembling it 🕶)._

- [S02E00 - Kafka and Go](https://rmoff.net/2020/07/08/learning-golang-some-rough-notes-s02e00-kafka-and-go/)
- [S02E01 - My First Kafka Go Producer](https://rmoff.net/2020/07/08/learning-golang-some-rough-notes-s02e01-my-first-kafka-go-producer/)
- [S02E02 - Adding error handling to the Producer](https://rmoff.net/2020/07/10/learning-golang-some-rough-notes-s02e02-adding-error-handling-to-the-producer/)
- [S02E03 - Kafka Go Consumer (Channel-based)](https://rmoff.net/2020/07/14/learning-golang-some-rough-notes-s02e03-kafka-go-consumer-channel-based/)
- [S02E04 - Kafka Go Consumer (Function-based)](https://rmoff.net/2020/07/14/learning-golang-some-rough-notes-s02e04-kafka-go-consumer-function-based/)
- [S02E05 - Kafka Go AdminClient](https://rmoff.net/2020/07/15/learning-golang-some-rough-notes-s02e05-kafka-go-adminclient/)
- [S02E06 - Putting the Producer in a function and handling errors in a Go routine](https://rmoff.net/2020/07/15/learning-golang-some-rough-notes-s02e06-putting-the-producer-in-a-function-and-handling-errors-in-a-go-routine/)
- [S02E07 - Splitting Go code into separate source files and building a binary executable](https://rmoff.net/2020/07/16/learning-golang-some-rough-notes-s02e07-splitting-go-code-into-separate-source-files-and-building-a-binary-executable/)
- [S02E08 - Checking Kafka advertised.listeners with Go](https://rmoff.net/2020/07/17/learning-golang-some-rough-notes-s02e08-checking-kafka-advertised.listeners-with-go/)
- [S02E09 - Processing chunked responses before EOF is reached](https://rmoff.net/2020/07/23/learning-golang-some-rough-notes-s02e09-processing-chunked-responses-before-eof-is-reached/)

---

<div class="post-metadata">

**Author:** ![rmoff](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.confluent.io/rmoff/32/3_2.png) [@rmoff](https://forum.confluent.io/u/rmoff)\
**Post date:** [22 February 2021 15:27 UTC](https://forum.confluent.io/t/my-journey-learning-go-and-using-it-with-kafka/160/2 "2021-02-22T15:27:24Z")

</div>


