Streaming with
Structure
Apache Kafka
Kate Stanley
Salma Saeed
Let’s get some coffee…
© 2021 IBM Corporation
Barista Example:
© 2021 IBM Corporation
Coffee Shop
Barista
Coffee Lovers
HTTP
HTTP
https://github.com/cescoffier/quarkus-coffeeshop-demo
Event Driven Architecture
© 2021 IBM Corporation
S1
S3
S2
S4
Event-driven messaging backbone
Microservice
publishing
events
Microservice
consuming
events
Event-driven messaging backbone
http://ibm.biz/AdvantagesOfEDA
Barista Example:
© 2021 IBM Corporation
Coffee Shop
Coffee Shop
Barista
Barista
Board
Coffee Lovers
Coffee Lovers
HTTP
Orders,
Queue
HTTP
HTTP
https://github.com/cescoffier/quarkus-coffeeshop-demo
Event
Backbone
Data is stored in bytes
© 2021 IBM Corporation
Producer Consumer
01 0F 11 01 01 0F 11 01
Data is stored in bytes
© 2021 IBM Corporation
Producer Consumer
String Serializer
Integer Serializer
String Deserializer
Integer Deserializer
01 0F 11 01 01 0F 11 01
Serialization
© 2021 IBM Corporation
value.serializer="org.apache.kafka.common.serialization.IntegerSerializer”
KafkaProducer<String, String> kafkaProducer =
KafkaProducer.create(vertx, props);
KafkaProducerRecord<String, String> record =
KafkaProducerRecord.create("test", "hello");
Producer Consumer
00 00 00 01
1
2
Serialization
© 2021 IBM Corporation
org.apache.kafka.common.errors.SerializationException: Can't convert value of class java.lang.String to class
org.apache.kafka.common.serialization.IntegerSerializer specified in value.serializer
Caused by: java.lang.ClassCastException: java.lang.String incompatible with java.lang.Integer
at org.apache.kafka.common.serialization.IntegerSerializer.serialize(IntegerSerializer.java:19)
at org.apache.kafka.common.serialization.Serializer.serialize(Serializer.java:62)
at org.apache.kafka.clients.producer.KafkaProducer.doSend(KafkaProducer.java:910)
at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:870)
Producer Consumer
00 00 00 01
1
2
Deserialization
© 2021 IBM Corporation
Producer Consumer
00 00 00 01 00 00 00 01
1
Deserialization
© 2021 IBM Corporation
value.deserializer="org.apache.kafka.common.serialization.StringDeserializer”
KafkaConsumer<String, String> kafkaConsumer = KafkaConsumer.create(vertx, props);
Producer Consumer
00 00 00 01
00 00 00 01
1
Deserialization
© 2021 IBM Corporation
kafkaConsumer.handler(record -> {
record.value();
record.value().length();
convertToHex(record.value().getBytes(StandardCharsets.UTF_8));
Buffer.buffer(record.value().getBytes(StandardCharsets.UTF_8)).getInt(0)
}
4
“ “
Producer Consumer
00 00 00 01
00 00 00 01
“ ”
1
Deserialization
© 2021 IBM Corporation
kafkaConsumer.handler(record -> {
record.value();
record.value().length();
convertToHex(record.value().getBytes(StandardCharsets.UTF_8));
Buffer.buffer(record.value().getBytes(StandardCharsets.UTF_8)).getInt(0)
}
00 00 00 01
4
“ “
1
Producer Consumer
1
00 00 00 01
00 00 00 01
1
Deserialization
© 2021 IBM Corporation
kafkaConsumer.handler(record -> {
record.value();
record.value().length();
convertToHex(record.value().getBytes(StandardCharsets.UTF_8));
Buffer.buffer(record.value().getBytes(StandardCharsets.UTF_8)).getInt(0)
}
00 00 00 02
4
“ “
2
Producer Consumer
00 00 00 02
00 00 00 02
2
2
StringSerializer
© 2021 IBM Corporation
Coffee Shop Barista
StringSerializer
© 2021 IBM Corporation
Coffee Shop Barista
“id,product,customer,size”
StringSerializer
© 2021 IBM Corporation
Coffee Shop Barista
“1234,hot chocolate,Kate,small”
StringSerializer
© 2021 IBM Corporation
Coffee Shop Barista
“1234,hot chocolate,Kate,small”
StringSerializer
© 2021 IBM Corporation
Coffee Shop Barista
“id,product,marshmallows,customer,size”
StringSerializer
© 2021 IBM Corporation
Coffee Shop Barista
“1234,hot chocolate,true,Kate,small”
StringSerializer
© 2021 IBM Corporation
Coffee Shop Barista
“1234,hot chocolate,true,Kate,small”
?
Using JSON
JSON gives structure
© 2021 IBM Corporation
{
“orderId”: “1234”,
“product”: “hot chocolate”,
“customer”: ”Kate”,
“size”: small
}
JSON gives structure
© 2021 IBM Corporation
{
“orderId”: “1234”,
“product”: “hot chocolate”,
“customer”: ”Kate”,
“size”: small,
”marshmallows”: true
}
JSON lacks metadata
© 2021 IBM Corporation
{
“orderId”: “1234”,
“product”: “hot chocolate”,
“customer”: ”Kate”,
“size”: small,
”marshmallows”: “yes”
}
?
Adding structure
with schemas
Adding structure with Schemas
© 2021 IBM Corporation
Where to store the schema
© 2021 IBM Corporation
Producer Consumer
? ?
Where to store the schema
© 2021 IBM Corporation
Producer Consumer
Where to store the schema
© 2021 IBM Corporation
Producer Consumer
Where to store the schema
© 2021 IBM Corporation
Producer Consumer
Schema in the message
© 2021 IBM Corporation
Producer Consumer
{
“schema”: {
“properties”: {
“orderId”: {“type”: “string”},
“size”: {“type”: ”bool”},
…
},
“orderId”: “1234”,
“product”: “hot chocolate”,
“customer”: ”Kate”,
“size”: small
}
Schema Registry
Schema Registry
© 2021 IBM Corporation
Producer Consumer
Schema registry
Schema Registry
© 2021 IBM Corporation
Producer Consumer
Schema registry
© 2021 IBM Corporation
What format to use? Which schema to choose?
Schema formats
Schema Formats
JSON Schema
Google Protocol Buffer
Apache Avro
© 2021 IBM Corporation
JSON Schema
A vocabulary that allows you
to annotate and validate JSON documents
Describes your existing data format(s)
Provides clear human- and machine- readable
documentation
Code and schema generators available in Java
https://json-schema.org
© 2021 IBM Corporation
{
”type”: “object”,
“properties”: {
“product”: {“type”: “string”},
“customer”: {“type”: “string”},
“size”: {
“type”: “string”,
”enum”: [“small”, “medium”]
}
},
“required”: [“product”, “size”]
}
Protobuf
Mechanism for serializing structured data
Created by Google
Language neutral
Supports generated code in Java, Python, Objective-
C and C++
https://developers.google.com/protocol-buffers/
© 2021 IBM Corporation
message Order {
required int32 id = 1;
required string product = 2;
optional bool marshmallows = 3;
}
Order hotChocolate = Order.newBuilder()
.setOrderId(1234)
.setProduct(“hot chocolate”)
.setMarshmallows(true)
.build();
.proto
Apache Avro
A data serialization system that provides:
Rich data structures
A compact, fast, binary data format
Simple integration with dynamic languages
Java, Python and C support
© 2021 IBM Corporation
.avsc
{
"type": "record",
"name": "Order",
"fields": [
{"name": "product", "type": "string"},
{"name": "orderId", "type": ”string", "logicalType": "uuid"},
{"name": "marshmallows", "type": "boolean"},
{"name": "size", "type": "enum", "symbols" : ["small", "medium"]}
]
}
Documenting your event-driven
architecture
AsyncAPI
https://www.asyncapi.com
© 2021 IBM Corporation
Which schema to
choose
Identifying schemas
© 2021 IBM Corporation
id-1 id-2
id-1
v1
v2
Kafka Records
© 2021 IBM Corporation
key
value
key
value
key
value
key
value
key
value
Magic bytes
© 2021 IBM Corporation
00 00 12 34 af 56 78 9a bc de f0 12 34 56 78 …
Magic bytes
© 2021 IBM Corporation
00 00 12 34 af 56 78 9a bc de f0 12 34 56 78 …
Magic bytes
© 2021 IBM Corporation
00 00 12 34 af
Magic byte
56 78 9a bc de f0 12 34 56 78 …
Magic bytes
© 2021 IBM Corporation
00 00 12 34 af
Integer schema ID
56 78 9a bc de f0 12 34 56 78 …
Magic bytes
© 2021 IBM Corporation
00 00 12 34 af 56 78 9a bc de f0 12 34 56 78 …
Serialized data
key:
value:
Magic bytes
© 2021 IBM Corporation
00 00 12 34 af 56 78 9a bc de f0 12 34 56 78 …
00 00 12 34 af 56 78 9a bc de f0 12 34 56 78 …
Record Headers
© 2021 IBM Corporation
key
value
key
value
key
value
key
value
key
value
Record Headers
© 2021 IBM Corporation
key
value
key
value
key
value
key
value
key
value
Header Header Header
Header
Header
Headers
© 2021 IBM Corporation
ProducerRecord<String, MySchema> producerRecord =
new ProducerRecord<String, MySchema>(“key”, specificRecord);
producerRecord.headers().add(“value-schema-id”, schema.getIdAsBytes());
producerRecord.headers().add(“value-schema-version”, schema.getVersionAsBytes());
producer.send(producerRecord);
© 2021 IBM Corporation
key
value
header
Magic Byte
key
value
header
Record Header
Serializers, Deserializers,
Serdes and Converters
© 2021 IBM Corporation
© 2021 IBM Corporation
© 2021 IBM Corporation
© 2021 IBM Corporation
Producer/Consumer
Producer
key.serializer
value.serializer
Consumer
key.deserializer
value.deserializer
© 2021 IBM Corporation
Producer/Consumer
Producer
key.serializer
value.serializer
schema.registry.HeaderAvroValueSerializer
Consumer
key.deserializer
value.deserializer
schema.registry.HeaderAvroValueDeserializer
© 2021 IBM Corporation
Kafka Connect
Converter
key.converter
value.converter
org.apache.kafka.connect.json.JsonConverter
org.apache.kafka.connect.storage.StringConverter
org.apache.kafka.connect.converters.ByteArrayConverter
schema.registry.HeaderAvroConverter
© 2021 IBM Corporation
Kafka Streams
SerDes
key.serde
value.serde
org.apache.kafka.common.serialization.Serdes
Serdes.ByteArray()
Serdes.String()
Serdes.Integer()
schema.registry.HeaderAvroSerdes
© 2021 IBM Corporation
© 2021 IBM Corporation
Kafka connector Consumer
External System
Kafka Streams
app
Schema registry
© 2021 IBM Corporation
Kafka connector Consumer
External System
Kafka Streams
app
Schema registry
Converter
SerDes
Deserializer
Example Schema
Registries
Example Schema Registries
© 2021 IBM Corporation
Apicurio Registry
Format options: Apache Avro, Google protocol buffers, JSON Schema
Storage options: Kafka, PostgreSQL
API support: Apicurio, IBM, Confluent
License: Apache 2.0
https://github.com/Apicurio/apicurio-registry
Confluent Schema Registry
Format options: Apache Avro, Google protocol buffers, JSON Schema
Storage options: Kafka
API support: Confluent
License: Confluent community license
https://docs.confluent.io/platform/current/schema-registry/index.html#
Summary
Use schemas to get structure
Schema registry provides a centralized store
Choose your favourite format and identification
mechanism
© 2021 IBM Corporation
Thank you
Kate Stanley | @katestanley91
Salma Saeed | @salmasaeed07
© 2021 IBM Corporation
Getting started with Kafka:
https://developer.ibm.com/components/kafka/
https://kafka.apache.org/quickstart
https://strimzi.io
https://github.com/ibm-messaging/kafka-java-vertx-starter
https://www.apicur.io/registry/docs/apicurio-registry/index.html
https://github.com/Apicurio/apicurio-registry
https://docs.confluent.io/platform/current/schema-registry/index.html#

More Related Content

PDF
Getting started with AsyncAPI: how to describe your Kafka cluster | Salma Sae...
PDF
Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | F...
PPTX
Confluent Private Cloud | Rohit Bakhshi, Staff Product Manager
PDF
Kafka summit apac session
PPTX
Confluent Cloud Networking | Rajan Sundaram, Confluent
PPTX
Hybrid Streaming Analytics for Apache Kafka Users | Firat Tekiner, Google
PDF
Rethinking Geo-replication for the Cloud | Luke Knepper, Confluent
PPTX
Deep Dive Series #3: Schema Validation + Structured Audit Logs
Getting started with AsyncAPI: how to describe your Kafka cluster | Salma Sae...
Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | F...
Confluent Private Cloud | Rohit Bakhshi, Staff Product Manager
Kafka summit apac session
Confluent Cloud Networking | Rajan Sundaram, Confluent
Hybrid Streaming Analytics for Apache Kafka Users | Firat Tekiner, Google
Rethinking Geo-replication for the Cloud | Luke Knepper, Confluent
Deep Dive Series #3: Schema Validation + Structured Audit Logs

What's hot (20)

PDF
Kubernetes Apache Kafka
PDF
Why Cloud-Native Kafka Matters: 4 Reasons to Stop Managing it Yourself
PDF
Mind the App: How to Monitor Your Kafka Streams Applications | Bruno Cadonna,...
PDF
How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...
PDF
Serverless London 2019 FaaS composition using Kafka and CloudEvents
PDF
Apache Kafka and ksqlDB in Action: Let's Build a Streaming Data Pipeline! (Ro...
PDF
What is Apache Kafka®?
PPTX
Building a fully Kafka-based product as a Data Scientist | Patrick Neff, BAADER
PDF
New Features in Confluent Platform 6.0 / Apache Kafka 2.6
PDF
Failing to Cross the Streams – Lessons Learned the Hard Way | Philip Schmitt,...
PDF
Build a Bridge to Cloud with Apache Kafka® for Data Analytics Cloud Services
PDF
Serverless orchestration and automation with Cloud Workflows
PDF
Max Körbächer - AWS EKS and beyond – master your Kubernetes deployment on AWS...
PDF
apidays LIVE Paris - Sustainability APIs and making APIs sustainable by Phil ...
PDF
Concepts and Patterns for Streaming Services with Kafka
PDF
Stream processing for the masses with beam, python and flink
PDF
Bridge to the Cloud: Using Apache Kafka to Migrate to AWS
PDF
Architecting Microservices Applications with Instant Analytics
PDF
스타트업을 위한 Confluent 세미나
PDF
How to build an ETL pipeline with Apache Beam on Google Cloud Dataflow
Kubernetes Apache Kafka
Why Cloud-Native Kafka Matters: 4 Reasons to Stop Managing it Yourself
Mind the App: How to Monitor Your Kafka Streams Applications | Bruno Cadonna,...
How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...
Serverless London 2019 FaaS composition using Kafka and CloudEvents
Apache Kafka and ksqlDB in Action: Let's Build a Streaming Data Pipeline! (Ro...
What is Apache Kafka®?
Building a fully Kafka-based product as a Data Scientist | Patrick Neff, BAADER
New Features in Confluent Platform 6.0 / Apache Kafka 2.6
Failing to Cross the Streams – Lessons Learned the Hard Way | Philip Schmitt,...
Build a Bridge to Cloud with Apache Kafka® for Data Analytics Cloud Services
Serverless orchestration and automation with Cloud Workflows
Max Körbächer - AWS EKS and beyond – master your Kubernetes deployment on AWS...
apidays LIVE Paris - Sustainability APIs and making APIs sustainable by Phil ...
Concepts and Patterns for Streaming Services with Kafka
Stream processing for the masses with beam, python and flink
Bridge to the Cloud: Using Apache Kafka to Migrate to AWS
Architecting Microservices Applications with Instant Analytics
스타트업을 위한 Confluent 세미나
How to build an ETL pipeline with Apache Beam on Google Cloud Dataflow
Ad

Similar to Streaming with Structure | Kate Stanley and Salma Saeed, IBM (20)

PDF
Evolve Your Schemas in a Better Way! A Deep Dive into Avro Schema Compatibili...
PDF
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
PDF
From bytes to objects: describing your events | Dale Lane and Kate Stanley, IBM
PPTX
Evolving Streaming Applications
PDF
Flink Forward Berlin 2017: Joey Frazee, Suneel Marthi - Moving Beyond Moving ...
PDF
Moving beyond moving bytes
PPTX
Schema Registry - Set you Data Free
PPTX
Kafka Tutorial - Introduction to Apache Kafka (Part 2)
PDF
Confluent REST Proxy and Schema Registry (Concepts, Architecture, Features)
PPTX
Schema Registry - Set Your Data Free
PDF
Schemas, streams, and grocery stores
PDF
Type safe, versioned, and rewindable stream processing with Apache {Avro, K...
PDF
Building a Streaming Microservice Architecture: with Apache Spark Structured ...
PDF
Building a Streaming Platform with Kafka
PDF
Streaming Sensor Data Slides_Virender
PDF
What is Apache Kafka and What is an Event Streaming Platform?
PDF
Kafka 101 and Developer Best Practices
PPTX
Schema registry
PDF
How to use Parquet as a basis for ETL and analytics
PDF
Wikipedia’s Event Data Platform, Or: JSON Is Okay Too With Andrew Otto | Curr...
Evolve Your Schemas in a Better Way! A Deep Dive into Avro Schema Compatibili...
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
From bytes to objects: describing your events | Dale Lane and Kate Stanley, IBM
Evolving Streaming Applications
Flink Forward Berlin 2017: Joey Frazee, Suneel Marthi - Moving Beyond Moving ...
Moving beyond moving bytes
Schema Registry - Set you Data Free
Kafka Tutorial - Introduction to Apache Kafka (Part 2)
Confluent REST Proxy and Schema Registry (Concepts, Architecture, Features)
Schema Registry - Set Your Data Free
Schemas, streams, and grocery stores
Type safe, versioned, and rewindable stream processing with Apache {Avro, K...
Building a Streaming Microservice Architecture: with Apache Spark Structured ...
Building a Streaming Platform with Kafka
Streaming Sensor Data Slides_Virender
What is Apache Kafka and What is an Event Streaming Platform?
Kafka 101 and Developer Best Practices
Schema registry
How to use Parquet as a basis for ETL and analytics
Wikipedia’s Event Data Platform, Or: JSON Is Okay Too With Andrew Otto | Curr...
Ad

More from HostedbyConfluent (20)

PDF
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
PDF
Renaming a Kafka Topic | Kafka Summit London
PDF
Evolution of NRT Data Ingestion Pipeline at Trendyol
PDF
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
PDF
Exactly-once Stream Processing with Arroyo and Kafka
PDF
Fish Plays Pokemon | Kafka Summit London
PDF
Tiered Storage 101 | Kafla Summit London
PDF
Building a Self-Service Stream Processing Portal: How And Why
PDF
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
PDF
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
PDF
Navigating Private Network Connectivity Options for Kafka Clusters
PDF
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
PDF
Explaining How Real-Time GenAI Works in a Noisy Pub
PDF
TL;DR Kafka Metrics | Kafka Summit London
PDF
A Window Into Your Kafka Streams Tasks | KSL
PDF
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
PDF
Data Contracts Management: Schema Registry and Beyond
PDF
Code-First Approach: Crafting Efficient Flink Apps
PDF
Debezium vs. the World: An Overview of the CDC Ecosystem
PDF
Beyond Tiered Storage: Serverless Kafka with No Local Disks
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Renaming a Kafka Topic | Kafka Summit London
Evolution of NRT Data Ingestion Pipeline at Trendyol
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Exactly-once Stream Processing with Arroyo and Kafka
Fish Plays Pokemon | Kafka Summit London
Tiered Storage 101 | Kafla Summit London
Building a Self-Service Stream Processing Portal: How And Why
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Navigating Private Network Connectivity Options for Kafka Clusters
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
Explaining How Real-Time GenAI Works in a Noisy Pub
TL;DR Kafka Metrics | Kafka Summit London
A Window Into Your Kafka Streams Tasks | KSL
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
Data Contracts Management: Schema Registry and Beyond
Code-First Approach: Crafting Efficient Flink Apps
Debezium vs. the World: An Overview of the CDC Ecosystem
Beyond Tiered Storage: Serverless Kafka with No Local Disks

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PPT
Module 1.ppt Iot fundamentals and Architecture
PPTX
Web Crawler for Trend Tracking Gen Z Insights.pptx
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PDF
Unlock new opportunities with location data.pdf
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PDF
Architecture types and enterprise applications.pdf
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Zenith AI: Advanced Artificial Intelligence
DOCX
search engine optimization ppt fir known well about this
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
CloudStack 4.21: First Look Webinar slides
PPTX
Benefits of Physical activity for teenagers.pptx
PDF
August Patch Tuesday
NewMind AI Weekly Chronicles – August ’25 Week III
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Module 1.ppt Iot fundamentals and Architecture
Web Crawler for Trend Tracking Gen Z Insights.pptx
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
Unlock new opportunities with location data.pdf
WOOl fibre morphology and structure.pdf for textiles
A contest of sentiment analysis: k-nearest neighbor versus neural network
Architecture types and enterprise applications.pdf
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
A comparative study of natural language inference in Swahili using monolingua...
Zenith AI: Advanced Artificial Intelligence
search engine optimization ppt fir known well about this
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
CloudStack 4.21: First Look Webinar slides
Benefits of Physical activity for teenagers.pptx
August Patch Tuesday

Streaming with Structure | Kate Stanley and Salma Saeed, IBM

Editor's Notes

  • #3: SALMA
  • #4: Use this as an example -> there are plenty of existing demos showing that using event driven vs e.g. http is much better It is possible to do http requests without blocking the thread, but even with that switch you are still approaching from a request/response perspective
  • #5: Event Driven Architecture (EDA) is a popular architectural approach that enables events to be placed at the heart of our systems Consists of Events Events are records of something that has happened, a change in state - immutable and are ordered in sequence of their creation. Interested parties can be notified of these state changes by subscribing to published events and then acting on information using their chosen business logic. An event-driven architecture, refers to a system of loosely coupled microservices that exchange information between each other through the production and consumption of events.
  • #6: Use this as an example -> there are plenty of existing demos showing that using event driven vs e.g. http is much better
  • #8: KATE
  • #23: SALMA
  • #34: KATE
  • #42: Avro supports six kinds of complex types: records, enums, arrays, maps, unions and fixed.
  • #44: SALMA
  • #53: Added in Kafka v 0.11.0 Allows metadata to be added
  • #54: Added in Kafka v 0.11.0 Allows metadata to be added
  • #57: KATE
  • #68: SALMA
  • #71: KATE