{"id":4506,"date":"2021-10-23T13:00:34","date_gmt":"2021-10-23T13:00:34","guid":{"rendered":"https:\/\/dalelane.co.uk\/blog\/?p=4506"},"modified":"2021-10-23T14:16:09","modified_gmt":"2021-10-23T14:16:09","slug":"from-bytes-to-objects-describing-kafka-events","status":"publish","type":"post","link":"https:\/\/dalelane.co.uk\/blog\/?p=4506","title":{"rendered":"From bytes to objects: describing Kafka events"},"content":{"rendered":"<p><strong>The recording of the talk that <a href=\"https:\/\/twitter.com\/KateStanley91\">Kate Stanley<\/a> and I gave at <a href=\"https:\/\/www.kafka-summit.org\/kafka-summit-americas-2021\">Kafka Summit Americas<\/a> is now available.<\/strong><\/p>\n<p>Events stored in Kafka are just bytes, this is one of the reasons Kafka is so flexible. But when developing a producer or consumer you want objects, not bytes. Documenting and defining events provides a common way to discuss and agree on an approach to using Kafka. It also informs developers how to consume events without needing access to the developers responsible for producing events.<\/p>\n<p>In our talk, we introduced the most popular formats for documenting events that flow through Kafka, such as AsyncAPI, Avro, CloudEvents, JSON schemas, and Protobuf.<\/p>\n<p>We discussed the differences between the approaches and how to decide on a documentation strategy. Alongside the formats, we also touched on the tooling available for the different approaches. Tools for testing and code generation can make a big difference to your day-to-day developer experience.<\/p>\n<p>The talk was aimed at developers who maybe aren&#8217;t already documenting their Kafka events or who wanted to see other approaches.<\/p>\n<p><iframe loading=\"lazy\" allow=\"autoplay; fullscreen; picture-in-picture;\" allowfullscreen=\"\" allowtransparency=\"true\" referrerpolicy=\"no-referrer-when-downgrade\" height=\"270\" width=\"450\" scrolling=\"no\" src=\"https:\/\/play.vidyard.com\/a7wACbo5tAKxYq6zob143D?disable_popouts=1&amp;type=inline&amp;v=4.2.36\"><\/iframe><br \/>\n<small><a href=\"https:\/\/www.confluent.io\/events\/kafka-summit-americas-2021\/from-bytes-to-objects-describing-your-events\/\">watch the recording on the Kafka Summit website<\/a><\/small><\/p>\n<p><!--more--><iframe loading=\"lazy\" src=\"\/\/www.slideshare.net\/slideshow\/embed_code\/key\/bmzdH7fxlLZh2q\" width=\"450\" height=\"310\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" allowfullscreen=\"\"> <\/iframe><br \/>\n<small><a href=\"\/\/www.slideshare.net\/HostedbyConfluent\/from-bytes-to-objects-describing-your-events-dale-lane-and-kate-stanley-ibm\">download our slides on slideshare<\/a><\/small><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The recording of the talk that Kate Stanley and I gave at Kafka Summit Americas is now available. Events stored in Kafka are just bytes, this is one of the reasons Kafka is so flexible. But when developing a producer or consumer you want objects, not bytes. Documenting and defining events provides a common way [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4516,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[595,593,602,594,584],"class_list":["post-4506","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech","tag-apacheavro","tag-apachekafka","tag-asyncapi","tag-avro","tag-kafka"],"_links":{"self":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4506","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4506"}],"version-history":[{"count":0,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4506\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/media\/4516"}],"wp:attachment":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4506"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4506"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4506"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}