SlideShare a Scribd company logo
Event-driven APIs & schema governance for Apache
Kafka
Apicurio Registry
Fabian Martinez
Senior Software Quality Engineer
@famargon13
Hugo Guerrero
APIs & Messaging Developer Advocate
@hguerreroo
1
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
Who are we?
2
Fabian Martinez (@famargon13)
● Senior Software Quality Engineer @ Red Hat
● Java, Microservices & Kubernetes
● Good coffee lover
Hugo Guerrero (@hguerreroo)
● Developer Advocate @ Red Hat
● APIs & Messaging Specialist
● Food, Travel & History Enthusiast
● Writes at https://hellokube.dev
What is the situation?
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
3
Distributed Decoupled Connected
What is the situation?
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
4
Distributed Decoupled Connected
Microservices Request / Response Events
What is the situation?
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
5
Distributed Decoupled Connected
Microservices Request / Response Events
The Traditional Workflow
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
6
Project Planning
The business experts spend time writing up a
project plan for a series of services and
potentially a user interface
Send to Developers
The various development teams attempt to
interpret the project plan and implement their
code so that they are compatible
Iterate and Integrate
The developer teams iteratively try to resolve
integration issues and spend loads of time
ensuring compatibility
Kafkaesque
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
7
Photo credit: dbeck03 on VisualHunt
Endpoint Documentation ?
Data Format and Validation ?
Infrastructure Access?
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
8
Why Contract-First?
● Because you want to allow people to work independently
● Because you want to ensure consistency
● Because you need strong guarantees about service contracts
● Because you, your team, your customers, and your partners can collaborate
● Because you can save time by using code generators and testing tooling
How does it work on REST APIs?
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
9
Source:
https://swagger.io/docs/specification/about/
https://www.apicur.io/
https://openapi-generator.tech/
https://microcks.io/
Build an API Specification
Using a tool like OpenAPI,
write an API specification FIRST
Publish the API Specification
Using a tool like Swagger or Apicur.io,
publish the API specification where others
have access and can collaborate
Generate Code, Mocks and Testing
Using a tool like OpenAPI Generator to create
the API stubs for both client and server
applications. You can also generate “mock”
services with Microcks.
Event-driven Secret Weapon
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
10
An open source initiative that seeks to improve the
current state of Event-Driven Architectures.
Created to describe Event-driven APIs using MQTT,
AMQP, Apache Kafka, ...
“Sister” specification to OpenAPI: same base syntax,
use JSON Schema underhood.
Allows definition of examples
AsyncAPI
https://www.asyncapi.com/
Unified API contracts
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
11
POST /register
{
"fullName":"John Doe",
"email":"john@example.io",
"age":36
}
TOPIC user-registration
{
"id":"38102178-dbe5-4e81-aa65-8f6df1be4d44",
"fullName":"John Doe",
"email":"john@example.io",
"age":36,
"sendAt":"1603786974956",
}
OpenAPI 3
Contract
AsyncAPI 2
Contract
AsyncAPI Anatomy
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
12
https://www.asyncapi.com/docs/getting-started/coming-from-openapi
Info: metadata and documentation for this asynchronous API: version, title,
description, contact and licensing terms
Servers: list of brokers with binding details (URLs and security protocols)
Channel Item: destination that will be used by the API to publish or consume
events. Destination may be mapped to a topic, queue, address name
depending on the protocol binding.
Operation: whether the application using the AsyncAPI should subscribe or
produce messages. Holds its own descriptive metadata
Message: the content-type and structure of message headers and payload.
May reference schemas of different types (AsyncAPI, JSON, Avro). May
contain examples!
Components: Common definitions (schemas, traits, messages) like in
OpenAPI v3
AsyncAPI Anatomy
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
13
https://www.asyncapi.com/docs/getting-started/coming-from-openapi
Info: metadata and documentation for this asynchronous API: version, title,
description, contact and licensing terms
Servers: list of brokers with binding details (URLs and security protocols)
Channel Item: destination that will be used by the API to publish or consume
events. Destination may be mapped to a topic, queue, address name
depending on the protocol binding.
Operation: whether the application using the AsyncAPI should subscribe or
produce messages. Holds its own descriptive metadata
Message: the content-type and structure of message headers and payload.
May reference schemas of different types (AsyncAPI, JSON, Avro). May
include examples!
Components: Common definitions (schemas, traits, messages) like in
OpenAPI v3
Schemas are events
contracts
EVENT-DRIVEN
APIS
&
SCHEMA
GOVERNANCE
14
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
Contract-First API Development
15
Why is it important to use API contracts in Apache Kafka?
Producer
| | | | | | |  
| | | | | | |   |
| | | | | |
Apache Kafka
Send
Data
Retrieve
Data
Consumer
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
Contract-First API Development
16
Why is it important to use API contracts in Apache Kafka?
Producer
| | | | | | |  
| | | | | | |   |
| | | | | |
Apache Kafka
Send
Data
Retrieve
Data
Consumer
Consumer
Consumer
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
Contract-First API Development
17
Why is it important to use API contracts in Apache Kafka?
Producer
| | | | | | |  
| | | | | | |   |
| | | | | |
Apache Kafka
Send
Data
Retrieve
Data
Consumer
Consumer
Consumer
v2
v2
v2
v1
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
Contract-First API Development
18
Why is it important to use API contracts in Apache Kafka?
Producer
| | | | | | |  
| | | | | | |   |
| | | | | |
Apache Kafka
Send
Data
Retrieve
Data
Consumer
Consumer
Consumer
v2
v2
v2
v1
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
Contract-First API Development
19
Why is it important to use API contracts in Apache Kafka?
Producer
| | | | | | |  
| | | | | | |   |
| | | | | |
Apache Kafka
Send
Data
Retrieve
Data
Consumer
Consumer
Consumer
v2
v2
v2
v1
What issues needs to be addressed in a
Kafka world?
● Kafka is not aware of data types or
schema formats.
● API schemas are subject to change.
● Central registry where the data schemas
are stored and accessible.
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
20
Photo credit: Harald Groven on VisualHunt
Registry for Schemas to
the rescue
EVENT-DRIVEN
APIS
&
SCHEMA
GOVERNANCE
21
Using the Registry for Schema Management
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
22
Producer Consumer
Deserializer
Serializer
Registry
| | | | | | |  
| | | | | | |   |
| | | | | |
Apache Kafka
Get or
Register
Schema
by Id
Retrieve
Schema
by Id
Topic B
(JSON)
Topic C
(Protobuf)
Topic A
(Avro)
Send
Serialized
Data
Retrieve
Serialized
Data
Optional section marker or title
What are the required
capabilities of the registry?
23
The registry needs to address
the following 3 pillars for a
successful management
You need to be able to manage all the different types of
artifacts, be able to browse, download and document in
single place.
Artifact Management
Support for different types of data structures, like Apache
Avro, Google Protocol Buffers, or JSON Schemas.
Data Formats
Artifacts follow content evolution and are controlled by
enabling content rules, including Validity and Compatibility.
Versioning
Apicurio Registry
@apicurio
https://www.apicur.io/registry/
https://github.com/Apicurio/apicurio-registry
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
24
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
Apicurio Registry
25
Use Cases
Source:
https://github.com/Apicurio/apicurio-registry
API specification registry for
API consumers
Shared Data Types
API Designs
Shared data types (schemas) across
API and event driven architectures
Schema Registry
Schema registry for Kafka
serializers/deserializers
● Native support for multiple Schema formats:
○ Apache Avro
○ JSON Schema
○ Protobuf (protocol buffers)
○ OpenAPI
○ AsyncAPI
○ ...
● Version control
○ Schemas versioning management
● Compatibility and Validity enforcement rules
○ Backwards compatibility enforcement, among others
○ Schema validity enforcement, among others
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
Apicurio Registry
26
Features
Source:
https://github.com/Apicurio/apicurio-registry
● Paired with lots of tools
○ Web UI
○ Kafka Serializer / Deserializer (Serdes)
○ Kafka Connect Converters
○ Maven Plugin for schema management
○ Kubernetes Operator
○ CLI tool
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
Apicurio Registry
27
Features
Source:
https://github.com/Apicurio/apicurio-registry
An Improved Registry:
Service Registry 2.0 for
Red Hat Integration
EVENT-DRIVEN
APIS
&
SCHEMA
GOVERNANCE
28
● Support for Artifact groups
○ New v2 REST API with top level groupings support
● Improved Serdes libraries
○ Independent libraries for each data format
○ Avro, Protobuf and Json Schema
○ Simplified configuration
○ Lots of powerful configuration options
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
Service Registry 2.0
29
New Features
Source:
https://github.com/Apicurio/apicurio-registry
● Authentication support
○ Integration with the OIDC protocol for securing the Registry
API
● Support for event-driven integrations
○ Allowing for custom or third party integrations
○ Webhooks
○ Kafka
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
Service Registry 2.0
30
New Features
Source:
https://github.com/Apicurio/apicurio-registry
● Implementation preview of the CNCF Schema
Registry API.
● Part of the CloudEvents Working Group efforts
for standardization and interoperability.
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
Service Registry 2.0
31
CNCF Schema Registry API support
Source:
https://github.com/cloudevents/spec/blob/master/schemaregistry/schemaregistry.md
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
32
Source Code: https://github.com/maschind/apicurio-kafka-demo
Photo credit: nickboos on Visualhunt
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
Red Hat Integration
33
Source
▸ Change Data Capture
with Debezium
API Management
Events & Messaging
Enterprise Integration
Data Integration
▸ Comprehensive connectors
▸ Microservices orchestration
▸ Data Transformation
▸ Low-code iPaaS
▸ Serverless Composition with
Camel K
▸ JMS Message Broker
▸ Wide Area Routing
▸ Data Streaming with
Apache Kafka
▸ Self-service messaging
▸ API Manager
▸ API Gateway
▸ Istio Service Mesh
Adapter
▸ Service Registry
▸ API Designer
Tooling & Metadata
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
34
Kafka Cluster
Mirror Maker 1
Entity Operator
(Topic, User)
Cluster Operator
Zookeeper
Cluster
HTTP Bridge
Kafka Connect
Cluster
Debezium
Connectors
Camel Kafka
Connectors Other Connectors
Service Registry
Mirror Maker 2
Zookeeper
Cluster
Kafka Cluster
Kafka Connect
Cluster
Zookeeper
Cluster
Camel Kafka
Connectors
Debezium
Connectors
Java Clients /
Kafka Streams
(Inc Quarkus)
Manages
Manages
Deploys
Consumes
Validates
Validates
Replicates
Consumes / Produces
Consumes / Produces
Captures
Connects
Connects
Converts
Java Clients /
Kafka Streams
(Inc Quarkus)
API Management
Manages
Single Sign On
Authenticates
● Getting Started
● https://developers.redhat.com/blog/2019/12/16/getting-started-with-red-hat-integration-service-registry
● https://developers.redhat.com/blog/2020/12/09/new-features-and-storage-options-in-red-hat-integration-service-r
egistry-1-1-ga
● Install and configure Service Registry for AMQ Streams
● Installing Service Registry from the OpenShift OperatorHub
● Configuring Service Registry with AMQ Streams storage on OpenShift
● Validating Schemas using Kafka Client Serializer/Deserializer
● Validating schemas using Kafka client serializers/deserializers
● Strategies to look up a schema
● Service Registry Java Client
● Managing Service Registry content using the Java client
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
Useful Bookmarks
35
linkedin.com/company/red-hat
youtube.com/user/RedHatVideos
facebook.com/redhatinc
twitter.com/RedHat
36
Red Hat is the world’s leading provider of enterprise
open source software solutions. Award-winning
support, training, and consulting services make
Red Hat a trusted adviser to the Fortune 500.
Thank you
Available for different
solutions like Events (Kafka),
API management (3scale)
and EIPs (Fuse)
SERVICE REGISTRY
Service Registry
37
Targeted requirements for enterprise registry
Source:
https://github.com/Apicurio/apicurio-registry
Flexibility
Provide Lifecycle Management,
Monitoring & Metrics,
Operators, Pluggable Storage,
validations.
Enterprise Ready
Target usage for OpenAPI,
Async API, REST CRUD, UI,
Search
API Usage
Support different artifacts:
Avro, Protobuf, JSONSchema,
OpenAPI, AsyncAPI,
among others
Inclusive Artifacts
● Datastore for standard event schemas and API designs
● Handles following data formats:
○ Apache Avro
○ JSON Schema
○ Protobuf (protocol buffers)
○ OpenAPI
○ AsyncAPI
○ GraphQL
○ Kafka Connect Schema
● Drop in replacement for Confluent Schema Registry
SERVICE REGISTRY
Service Registry
38
Overview
Source:
https://github.com/Apicurio/apicurio-registry
● Server
● Java REST Client
○ Perform basic operations
● Utilities
○ Kafka Serializer / Deserializer (Serde)
○ Kafka Connect Converters
○ Maven Plugin
■ Register artifacts
■ Test rules and compatibility
■ Download artifacts
SERVICE REGISTRY
Service Registry
39
Components
Source:
https://github.com/Apicurio/apicurio-registry
● Java + Quarkus based implementation
● Pluggable Storage
○ Kafka Streams (GA), JPA (TP), Infinispan (TP)
● Apicurio
○ Built on the Apicurio Registry community project
○ API first design
○ Custom REST API
○ Confluent (and IBM) compliant API
SERVICE REGISTRY
Service Registry
40
Implementation
Source:
https://github.com/Apicurio/apicurio-registry
● Validation Rules
○ Artifact must have valid content or
server will reject it
○ Can check for valid syntax
○ Can also check for valid semantics
(for some artifact types)
SERVICE REGISTRY
Service Registry
41
● Compatibility Rules
○ Determines whether an update is allowed
based on configured compatibility
requirement setting
○ Multiple compatibility options including
Backwards and Forwards compatible
○ Only relevant for updates (checks the new
version against the previous version)
○ Controls the evolution of a single Artifact
over time
Registry Rules
Source:
https://github.com/Apicurio/apicurio-registry
● Backward Compatibility
○ New version of the artifact would be compatible with previous versions
of that artifact
○ Records that use the previous version can be read using the new
artifact
● Forward Compatibility
○ Exiting artifact is compatible with future versions of that artifact
○ Records that use the new artifact can still be retrieve using previous
version.
SERVICE REGISTRY
Service Registry
42
Compatibility Rules
Source:
https://github.com/Apicurio/apicurio-registry
● Byte format is more efficient in Kafka
● Multi protocol support (Avro, Protobuf, OpenAPI, JSON, …)
● Ensures consistent data format
○ A producer client application uses a serializer to put the messages
that it sends to a specific broker topic into the correct data format
○ A consumer client application uses a deserializer to get the messages
that it consumes from a specific broker topic into the correct data format
SERVICE REGISTRY
Client Serializer / Deserializer
43
Source:
https://access.redhat.com/documentation/en-us/red_hat_integration/2020-q4/html/getting_started_with_service_registry/using-kafka-client-serdes
Available for different
solutions like Events (Kafka),
API management (3scale)
and EIPs (Fuse)
APICURIO REGISTRY
Apicurio Registry
44
Overview
Source:
https://github.com/Apicurio/apicurio-registry
API designs registry
Provide Lifecycle Management,
Monitoring & Metrics,
Operators, Pluggable Storage,
validations.
Enterprise Ready
Target usage for OpenAPI,
Async API, REST CRUD, UI,
Search
API Usage
Support different artifacts:
Avro, Protobuf, JSONSchema,
OpenAPI, AsyncAPI,
among others
Schema Registry
Skeleton:
Intro to Api First: ( why contract first? )
- Opena api
- Async api
Schemas in event driven architectures
Schema registry for kafka applications
Apicurio Registry 2.0
- New v2 REST API
- New serdes
- CNCF Schema Registry API support
- Support for webhooks
Demo
- Basic config with spring boot?
- Kafka streams on quarkus
- Smallrye-reactive-messaging on quarkus
45
46
Event-driven APIs & schema governance
for Apache Kafka
Apicurio Registry
Fabian Martinez
Senior Software Quality Engineer
@famargon13
EVENT-DRIVEN
APIS
&
SCHEMA
GOVERNANCE
Hugo Guerrero
APIs & Messaging Developer Advocate
@hguerreroo
linkedin.com/company/red-hat
youtube.com/user/RedHatVideos
facebook.com/redhatinc
twitter.com/RedHat
47
Red Hat is the world’s leading provider of enterprise
open source software solutions. Award-winning support,
training, and consulting services make Red Hat a trusted
adviser to the Fortune 500.
Thank you
EVENT-DRIVEN
APIS
&
SCHEMA
GOVERNANCE
EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
Contract-First API Development
48
What issues needs to be addressed in a Kafka world?
● Central registry where the API schemas (contracts) are stored
and accessible
● Kafka is not aware of data types or schema formats
> An instance to perform checks is needed
● API schemas are subject to change
> Version control, compatibility and validity needs to be governed
Ad

More Related Content

What's hot (20)

Microservices Integration Patterns with Kafka
Microservices Integration Patterns with KafkaMicroservices Integration Patterns with Kafka
Microservices Integration Patterns with Kafka
Kasun Indrasiri
 
Migrating Java JBoss EAP Applications to Kubernetes With S2I
Migrating Java JBoss EAP Applications to Kubernetes With S2IMigrating Java JBoss EAP Applications to Kubernetes With S2I
Migrating Java JBoss EAP Applications to Kubernetes With S2I
Konveyor Community
 
Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics
Araf Karsh Hamid
 
Kubecon US 2019: Kubernetes Multitenancy WG Deep Dive
Kubecon US 2019: Kubernetes Multitenancy WG Deep DiveKubecon US 2019: Kubernetes Multitenancy WG Deep Dive
Kubecon US 2019: Kubernetes Multitenancy WG Deep Dive
Sanjeev Rampal
 
API Gateway How-To: The Many Ways to Apply the Gateway Pattern
API Gateway How-To: The Many Ways to Apply the Gateway PatternAPI Gateway How-To: The Many Ways to Apply the Gateway Pattern
API Gateway How-To: The Many Ways to Apply the Gateway Pattern
VMware Tanzu
 
Infrastructure as Code for Beginners
Infrastructure as Code for BeginnersInfrastructure as Code for Beginners
Infrastructure as Code for Beginners
David Völkel
 
Cassandra Lunch #88: Cadence
Cassandra Lunch #88: CadenceCassandra Lunch #88: Cadence
Cassandra Lunch #88: Cadence
Anant Corporation
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
 
Everything You wanted to Know About Distributed Tracing
Everything You wanted to Know About Distributed TracingEverything You wanted to Know About Distributed Tracing
Everything You wanted to Know About Distributed Tracing
Amuhinda Hungai
 
Observability in Java: Getting Started with OpenTelemetry
Observability in Java: Getting Started with OpenTelemetryObservability in Java: Getting Started with OpenTelemetry
Observability in Java: Getting Started with OpenTelemetry
DevOps.com
 
Building secure applications with keycloak
Building secure applications with keycloak Building secure applications with keycloak
Building secure applications with keycloak
Abhishek Koserwal
 
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開するKeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
Hitachi, Ltd. OSS Solution Center.
 
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
Flink Forward
 
API Governance
API Governance API Governance
API Governance
Sunil Kuchipudi
 
Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...
Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...
Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...
HostedbyConfluent
 
OpenTelemetry For Architects
OpenTelemetry For ArchitectsOpenTelemetry For Architects
OpenTelemetry For Architects
Kevin Brockhoff
 
Microservices, DevOps & SRE
Microservices, DevOps & SREMicroservices, DevOps & SRE
Microservices, DevOps & SRE
Araf Karsh Hamid
 
Stability Patterns for Microservices
Stability Patterns for MicroservicesStability Patterns for Microservices
Stability Patterns for Microservices
pflueras
 
Integrating Apache Kafka Into Your Environment
Integrating Apache Kafka Into Your EnvironmentIntegrating Apache Kafka Into Your Environment
Integrating Apache Kafka Into Your Environment
confluent
 
Apigee Edge: Intro to Microgateway
Apigee Edge: Intro to MicrogatewayApigee Edge: Intro to Microgateway
Apigee Edge: Intro to Microgateway
Apigee | Google Cloud
 
Microservices Integration Patterns with Kafka
Microservices Integration Patterns with KafkaMicroservices Integration Patterns with Kafka
Microservices Integration Patterns with Kafka
Kasun Indrasiri
 
Migrating Java JBoss EAP Applications to Kubernetes With S2I
Migrating Java JBoss EAP Applications to Kubernetes With S2IMigrating Java JBoss EAP Applications to Kubernetes With S2I
Migrating Java JBoss EAP Applications to Kubernetes With S2I
Konveyor Community
 
Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics
Araf Karsh Hamid
 
Kubecon US 2019: Kubernetes Multitenancy WG Deep Dive
Kubecon US 2019: Kubernetes Multitenancy WG Deep DiveKubecon US 2019: Kubernetes Multitenancy WG Deep Dive
Kubecon US 2019: Kubernetes Multitenancy WG Deep Dive
Sanjeev Rampal
 
API Gateway How-To: The Many Ways to Apply the Gateway Pattern
API Gateway How-To: The Many Ways to Apply the Gateway PatternAPI Gateway How-To: The Many Ways to Apply the Gateway Pattern
API Gateway How-To: The Many Ways to Apply the Gateway Pattern
VMware Tanzu
 
Infrastructure as Code for Beginners
Infrastructure as Code for BeginnersInfrastructure as Code for Beginners
Infrastructure as Code for Beginners
David Völkel
 
Cassandra Lunch #88: Cadence
Cassandra Lunch #88: CadenceCassandra Lunch #88: Cadence
Cassandra Lunch #88: Cadence
Anant Corporation
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
 
Everything You wanted to Know About Distributed Tracing
Everything You wanted to Know About Distributed TracingEverything You wanted to Know About Distributed Tracing
Everything You wanted to Know About Distributed Tracing
Amuhinda Hungai
 
Observability in Java: Getting Started with OpenTelemetry
Observability in Java: Getting Started with OpenTelemetryObservability in Java: Getting Started with OpenTelemetry
Observability in Java: Getting Started with OpenTelemetry
DevOps.com
 
Building secure applications with keycloak
Building secure applications with keycloak Building secure applications with keycloak
Building secure applications with keycloak
Abhishek Koserwal
 
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開するKeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
Hitachi, Ltd. OSS Solution Center.
 
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
Flink Forward
 
Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...
Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...
Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...
HostedbyConfluent
 
OpenTelemetry For Architects
OpenTelemetry For ArchitectsOpenTelemetry For Architects
OpenTelemetry For Architects
Kevin Brockhoff
 
Microservices, DevOps & SRE
Microservices, DevOps & SREMicroservices, DevOps & SRE
Microservices, DevOps & SRE
Araf Karsh Hamid
 
Stability Patterns for Microservices
Stability Patterns for MicroservicesStability Patterns for Microservices
Stability Patterns for Microservices
pflueras
 
Integrating Apache Kafka Into Your Environment
Integrating Apache Kafka Into Your EnvironmentIntegrating Apache Kafka Into Your Environment
Integrating Apache Kafka Into Your Environment
confluent
 

Similar to Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | Fabian Martinez and Hugo Guerrero, Red Hat (20)

apidays LIVE Hong Kong 2021 - Event-driven APIs & Schema governance for Apach...
apidays LIVE Hong Kong 2021 - Event-driven APIs & Schema governance for Apach...apidays LIVE Hong Kong 2021 - Event-driven APIs & Schema governance for Apach...
apidays LIVE Hong Kong 2021 - Event-driven APIs & Schema governance for Apach...
apidays
 
apidays LIVE London 2021 - Getting started with Event-Driven APIs by Hugo Gue...
apidays LIVE London 2021 - Getting started with Event-Driven APIs by Hugo Gue...apidays LIVE London 2021 - Getting started with Event-Driven APIs by Hugo Gue...
apidays LIVE London 2021 - Getting started with Event-Driven APIs by Hugo Gue...
apidays
 
apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer...
apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer...apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer...
apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer...
apidays
 
Highlights of WSO2 API Manager 4.0.0
Highlights of WSO2 API Manager 4.0.0Highlights of WSO2 API Manager 4.0.0
Highlights of WSO2 API Manager 4.0.0
WSO2
 
How to Define and Share your Event APIs using AsyncAPI and Event API Products...
How to Define and Share your Event APIs using AsyncAPI and Event API Products...How to Define and Share your Event APIs using AsyncAPI and Event API Products...
How to Define and Share your Event APIs using AsyncAPI and Event API Products...
HostedbyConfluent
 
API Best Practices
API Best PracticesAPI Best Practices
API Best Practices
Sai Koppala
 
apidays LIVE Hong Kong - Orchestrating APIs at Scale by Hieu Nguyen Nhu
apidays LIVE Hong Kong - Orchestrating APIs at Scale by Hieu Nguyen Nhuapidays LIVE Hong Kong - Orchestrating APIs at Scale by Hieu Nguyen Nhu
apidays LIVE Hong Kong - Orchestrating APIs at Scale by Hieu Nguyen Nhu
apidays
 
Extend soa with api management spoug- Madrid
Extend soa with api management   spoug- MadridExtend soa with api management   spoug- Madrid
Extend soa with api management spoug- Madrid
Vinay Kumar
 
The Best of Both Worlds: Introducing WSO2 API Manager 4.0.0
The Best of Both Worlds: Introducing WSO2 API Manager 4.0.0The Best of Both Worlds: Introducing WSO2 API Manager 4.0.0
The Best of Both Worlds: Introducing WSO2 API Manager 4.0.0
WSO2
 
GlueCon 2018: Are REST APIs Still Relevant Today?
GlueCon 2018: Are REST APIs Still Relevant Today?GlueCon 2018: Are REST APIs Still Relevant Today?
GlueCon 2018: Are REST APIs Still Relevant Today?
LaunchAny
 
Extend soa with api management Sangam18
Extend soa with api management Sangam18Extend soa with api management Sangam18
Extend soa with api management Sangam18
Vinay Kumar
 
APIdays Paris 2014 - Workshop - Craft and Deploy Your API in a Few Clicks Wit...
APIdays Paris 2014 - Workshop - Craft and Deploy Your API in a Few Clicks Wit...APIdays Paris 2014 - Workshop - Craft and Deploy Your API in a Few Clicks Wit...
APIdays Paris 2014 - Workshop - Craft and Deploy Your API in a Few Clicks Wit...
Restlet
 
Ultimate Guide to 30+ API Documentation Solutions
Ultimate Guide to 30+ API Documentation SolutionsUltimate Guide to 30+ API Documentation Solutions
Ultimate Guide to 30+ API Documentation Solutions
Bill Doerrfeld
 
WSO2 Workshop Sydney 2016 - APIs
WSO2 Workshop Sydney 2016 - APIsWSO2 Workshop Sydney 2016 - APIs
WSO2 Workshop Sydney 2016 - APIs
Dassana Wijesekara
 
Alfresco and the Model Context Protocol (MCP)
Alfresco and the Model Context Protocol (MCP)Alfresco and the Model Context Protocol (MCP)
Alfresco and the Model Context Protocol (MCP)
Angel Borroy López
 
A Journey from API Versioning to Canary Release | APIDays Zurich 2017
A Journey from API Versioning to Canary Release | APIDays Zurich 2017A Journey from API Versioning to Canary Release | APIDays Zurich 2017
A Journey from API Versioning to Canary Release | APIDays Zurich 2017
Patrice Krakow
 
RefCard API Architecture Strategy
RefCard API Architecture StrategyRefCard API Architecture Strategy
RefCard API Architecture Strategy
OCTO Technology
 
Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies...
Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies...Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies...
Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies...
HostedbyConfluent
 
Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies?
Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies?Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies?
Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies?
Kai Wähner
 
What is SAP API Management_.pdf
What is SAP API Management_.pdfWhat is SAP API Management_.pdf
What is SAP API Management_.pdf
BilawalAmeen
 
apidays LIVE Hong Kong 2021 - Event-driven APIs & Schema governance for Apach...
apidays LIVE Hong Kong 2021 - Event-driven APIs & Schema governance for Apach...apidays LIVE Hong Kong 2021 - Event-driven APIs & Schema governance for Apach...
apidays LIVE Hong Kong 2021 - Event-driven APIs & Schema governance for Apach...
apidays
 
apidays LIVE London 2021 - Getting started with Event-Driven APIs by Hugo Gue...
apidays LIVE London 2021 - Getting started with Event-Driven APIs by Hugo Gue...apidays LIVE London 2021 - Getting started with Event-Driven APIs by Hugo Gue...
apidays LIVE London 2021 - Getting started with Event-Driven APIs by Hugo Gue...
apidays
 
apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer...
apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer...apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer...
apidays LIVE Paris 2021 - Getting started with Event-Driven APis by Hugo Guer...
apidays
 
Highlights of WSO2 API Manager 4.0.0
Highlights of WSO2 API Manager 4.0.0Highlights of WSO2 API Manager 4.0.0
Highlights of WSO2 API Manager 4.0.0
WSO2
 
How to Define and Share your Event APIs using AsyncAPI and Event API Products...
How to Define and Share your Event APIs using AsyncAPI and Event API Products...How to Define and Share your Event APIs using AsyncAPI and Event API Products...
How to Define and Share your Event APIs using AsyncAPI and Event API Products...
HostedbyConfluent
 
API Best Practices
API Best PracticesAPI Best Practices
API Best Practices
Sai Koppala
 
apidays LIVE Hong Kong - Orchestrating APIs at Scale by Hieu Nguyen Nhu
apidays LIVE Hong Kong - Orchestrating APIs at Scale by Hieu Nguyen Nhuapidays LIVE Hong Kong - Orchestrating APIs at Scale by Hieu Nguyen Nhu
apidays LIVE Hong Kong - Orchestrating APIs at Scale by Hieu Nguyen Nhu
apidays
 
Extend soa with api management spoug- Madrid
Extend soa with api management   spoug- MadridExtend soa with api management   spoug- Madrid
Extend soa with api management spoug- Madrid
Vinay Kumar
 
The Best of Both Worlds: Introducing WSO2 API Manager 4.0.0
The Best of Both Worlds: Introducing WSO2 API Manager 4.0.0The Best of Both Worlds: Introducing WSO2 API Manager 4.0.0
The Best of Both Worlds: Introducing WSO2 API Manager 4.0.0
WSO2
 
GlueCon 2018: Are REST APIs Still Relevant Today?
GlueCon 2018: Are REST APIs Still Relevant Today?GlueCon 2018: Are REST APIs Still Relevant Today?
GlueCon 2018: Are REST APIs Still Relevant Today?
LaunchAny
 
Extend soa with api management Sangam18
Extend soa with api management Sangam18Extend soa with api management Sangam18
Extend soa with api management Sangam18
Vinay Kumar
 
APIdays Paris 2014 - Workshop - Craft and Deploy Your API in a Few Clicks Wit...
APIdays Paris 2014 - Workshop - Craft and Deploy Your API in a Few Clicks Wit...APIdays Paris 2014 - Workshop - Craft and Deploy Your API in a Few Clicks Wit...
APIdays Paris 2014 - Workshop - Craft and Deploy Your API in a Few Clicks Wit...
Restlet
 
Ultimate Guide to 30+ API Documentation Solutions
Ultimate Guide to 30+ API Documentation SolutionsUltimate Guide to 30+ API Documentation Solutions
Ultimate Guide to 30+ API Documentation Solutions
Bill Doerrfeld
 
WSO2 Workshop Sydney 2016 - APIs
WSO2 Workshop Sydney 2016 - APIsWSO2 Workshop Sydney 2016 - APIs
WSO2 Workshop Sydney 2016 - APIs
Dassana Wijesekara
 
Alfresco and the Model Context Protocol (MCP)
Alfresco and the Model Context Protocol (MCP)Alfresco and the Model Context Protocol (MCP)
Alfresco and the Model Context Protocol (MCP)
Angel Borroy López
 
A Journey from API Versioning to Canary Release | APIDays Zurich 2017
A Journey from API Versioning to Canary Release | APIDays Zurich 2017A Journey from API Versioning to Canary Release | APIDays Zurich 2017
A Journey from API Versioning to Canary Release | APIDays Zurich 2017
Patrice Krakow
 
RefCard API Architecture Strategy
RefCard API Architecture StrategyRefCard API Architecture Strategy
RefCard API Architecture Strategy
OCTO Technology
 
Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies...
Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies...Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies...
Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies...
HostedbyConfluent
 
Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies?
Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies?Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies?
Apache Kafka and API Management / API Gateway – Friends, Enemies or Frenemies?
Kai Wähner
 
What is SAP API Management_.pdf
What is SAP API Management_.pdfWhat is SAP API Management_.pdf
What is SAP API Management_.pdf
BilawalAmeen
 
Ad

More from HostedbyConfluent (20)

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

Recently uploaded (20)

Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 

Apicurio Registry: Event-driven APIs & Schema governance for Apache Kafka | Fabian Martinez and Hugo Guerrero, Red Hat

  • 1. Event-driven APIs & schema governance for Apache Kafka Apicurio Registry Fabian Martinez Senior Software Quality Engineer @famargon13 Hugo Guerrero APIs & Messaging Developer Advocate @hguerreroo 1
  • 2. EVENT-DRIVEN APIS & SCHEMA GOVERNANCE Who are we? 2 Fabian Martinez (@famargon13) ● Senior Software Quality Engineer @ Red Hat ● Java, Microservices & Kubernetes ● Good coffee lover Hugo Guerrero (@hguerreroo) ● Developer Advocate @ Red Hat ● APIs & Messaging Specialist ● Food, Travel & History Enthusiast ● Writes at https://hellokube.dev
  • 3. What is the situation? EVENT-DRIVEN APIS & SCHEMA GOVERNANCE 3 Distributed Decoupled Connected
  • 4. What is the situation? EVENT-DRIVEN APIS & SCHEMA GOVERNANCE 4 Distributed Decoupled Connected Microservices Request / Response Events
  • 5. What is the situation? EVENT-DRIVEN APIS & SCHEMA GOVERNANCE 5 Distributed Decoupled Connected Microservices Request / Response Events
  • 6. The Traditional Workflow EVENT-DRIVEN APIS & SCHEMA GOVERNANCE 6 Project Planning The business experts spend time writing up a project plan for a series of services and potentially a user interface Send to Developers The various development teams attempt to interpret the project plan and implement their code so that they are compatible Iterate and Integrate The developer teams iteratively try to resolve integration issues and spend loads of time ensuring compatibility
  • 7. Kafkaesque EVENT-DRIVEN APIS & SCHEMA GOVERNANCE 7 Photo credit: dbeck03 on VisualHunt Endpoint Documentation ? Data Format and Validation ? Infrastructure Access?
  • 8. EVENT-DRIVEN APIS & SCHEMA GOVERNANCE 8 Why Contract-First? ● Because you want to allow people to work independently ● Because you want to ensure consistency ● Because you need strong guarantees about service contracts ● Because you, your team, your customers, and your partners can collaborate ● Because you can save time by using code generators and testing tooling
  • 9. How does it work on REST APIs? EVENT-DRIVEN APIS & SCHEMA GOVERNANCE 9 Source: https://swagger.io/docs/specification/about/ https://www.apicur.io/ https://openapi-generator.tech/ https://microcks.io/ Build an API Specification Using a tool like OpenAPI, write an API specification FIRST Publish the API Specification Using a tool like Swagger or Apicur.io, publish the API specification where others have access and can collaborate Generate Code, Mocks and Testing Using a tool like OpenAPI Generator to create the API stubs for both client and server applications. You can also generate “mock” services with Microcks.
  • 10. Event-driven Secret Weapon EVENT-DRIVEN APIS & SCHEMA GOVERNANCE 10 An open source initiative that seeks to improve the current state of Event-Driven Architectures. Created to describe Event-driven APIs using MQTT, AMQP, Apache Kafka, ... “Sister” specification to OpenAPI: same base syntax, use JSON Schema underhood. Allows definition of examples AsyncAPI https://www.asyncapi.com/
  • 11. Unified API contracts EVENT-DRIVEN APIS & SCHEMA GOVERNANCE 11 POST /register { "fullName":"John Doe", "email":"[email protected]", "age":36 } TOPIC user-registration { "id":"38102178-dbe5-4e81-aa65-8f6df1be4d44", "fullName":"John Doe", "email":"[email protected]", "age":36, "sendAt":"1603786974956", } OpenAPI 3 Contract AsyncAPI 2 Contract
  • 12. AsyncAPI Anatomy EVENT-DRIVEN APIS & SCHEMA GOVERNANCE 12 https://www.asyncapi.com/docs/getting-started/coming-from-openapi Info: metadata and documentation for this asynchronous API: version, title, description, contact and licensing terms Servers: list of brokers with binding details (URLs and security protocols) Channel Item: destination that will be used by the API to publish or consume events. Destination may be mapped to a topic, queue, address name depending on the protocol binding. Operation: whether the application using the AsyncAPI should subscribe or produce messages. Holds its own descriptive metadata Message: the content-type and structure of message headers and payload. May reference schemas of different types (AsyncAPI, JSON, Avro). May contain examples! Components: Common definitions (schemas, traits, messages) like in OpenAPI v3
  • 13. AsyncAPI Anatomy EVENT-DRIVEN APIS & SCHEMA GOVERNANCE 13 https://www.asyncapi.com/docs/getting-started/coming-from-openapi Info: metadata and documentation for this asynchronous API: version, title, description, contact and licensing terms Servers: list of brokers with binding details (URLs and security protocols) Channel Item: destination that will be used by the API to publish or consume events. Destination may be mapped to a topic, queue, address name depending on the protocol binding. Operation: whether the application using the AsyncAPI should subscribe or produce messages. Holds its own descriptive metadata Message: the content-type and structure of message headers and payload. May reference schemas of different types (AsyncAPI, JSON, Avro). May include examples! Components: Common definitions (schemas, traits, messages) like in OpenAPI v3
  • 15. EVENT-DRIVEN APIS & SCHEMA GOVERNANCE Contract-First API Development 15 Why is it important to use API contracts in Apache Kafka? Producer | | | | | | |   | | | | | | |   | | | | | | | Apache Kafka Send Data Retrieve Data Consumer
  • 16. EVENT-DRIVEN APIS & SCHEMA GOVERNANCE Contract-First API Development 16 Why is it important to use API contracts in Apache Kafka? Producer | | | | | | |   | | | | | | |   | | | | | | | Apache Kafka Send Data Retrieve Data Consumer Consumer Consumer
  • 17. EVENT-DRIVEN APIS & SCHEMA GOVERNANCE Contract-First API Development 17 Why is it important to use API contracts in Apache Kafka? Producer | | | | | | |   | | | | | | |   | | | | | | | Apache Kafka Send Data Retrieve Data Consumer Consumer Consumer v2 v2 v2 v1
  • 18. EVENT-DRIVEN APIS & SCHEMA GOVERNANCE Contract-First API Development 18 Why is it important to use API contracts in Apache Kafka? Producer | | | | | | |   | | | | | | |   | | | | | | | Apache Kafka Send Data Retrieve Data Consumer Consumer Consumer v2 v2 v2 v1
  • 19. EVENT-DRIVEN APIS & SCHEMA GOVERNANCE Contract-First API Development 19 Why is it important to use API contracts in Apache Kafka? Producer | | | | | | |   | | | | | | |   | | | | | | | Apache Kafka Send Data Retrieve Data Consumer Consumer Consumer v2 v2 v2 v1
  • 20. What issues needs to be addressed in a Kafka world? ● Kafka is not aware of data types or schema formats. ● API schemas are subject to change. ● Central registry where the data schemas are stored and accessible. EVENT-DRIVEN APIS & SCHEMA GOVERNANCE 20 Photo credit: Harald Groven on VisualHunt
  • 21. Registry for Schemas to the rescue EVENT-DRIVEN APIS & SCHEMA GOVERNANCE 21
  • 22. Using the Registry for Schema Management EVENT-DRIVEN APIS & SCHEMA GOVERNANCE 22 Producer Consumer Deserializer Serializer Registry | | | | | | |   | | | | | | |   | | | | | | | Apache Kafka Get or Register Schema by Id Retrieve Schema by Id Topic B (JSON) Topic C (Protobuf) Topic A (Avro) Send Serialized Data Retrieve Serialized Data
  • 23. Optional section marker or title What are the required capabilities of the registry? 23 The registry needs to address the following 3 pillars for a successful management You need to be able to manage all the different types of artifacts, be able to browse, download and document in single place. Artifact Management Support for different types of data structures, like Apache Avro, Google Protocol Buffers, or JSON Schemas. Data Formats Artifacts follow content evolution and are controlled by enabling content rules, including Validity and Compatibility. Versioning
  • 25. EVENT-DRIVEN APIS & SCHEMA GOVERNANCE Apicurio Registry 25 Use Cases Source: https://github.com/Apicurio/apicurio-registry API specification registry for API consumers Shared Data Types API Designs Shared data types (schemas) across API and event driven architectures Schema Registry Schema registry for Kafka serializers/deserializers
  • 26. ● Native support for multiple Schema formats: ○ Apache Avro ○ JSON Schema ○ Protobuf (protocol buffers) ○ OpenAPI ○ AsyncAPI ○ ... ● Version control ○ Schemas versioning management ● Compatibility and Validity enforcement rules ○ Backwards compatibility enforcement, among others ○ Schema validity enforcement, among others EVENT-DRIVEN APIS & SCHEMA GOVERNANCE Apicurio Registry 26 Features Source: https://github.com/Apicurio/apicurio-registry
  • 27. ● Paired with lots of tools ○ Web UI ○ Kafka Serializer / Deserializer (Serdes) ○ Kafka Connect Converters ○ Maven Plugin for schema management ○ Kubernetes Operator ○ CLI tool EVENT-DRIVEN APIS & SCHEMA GOVERNANCE Apicurio Registry 27 Features Source: https://github.com/Apicurio/apicurio-registry
  • 28. An Improved Registry: Service Registry 2.0 for Red Hat Integration EVENT-DRIVEN APIS & SCHEMA GOVERNANCE 28
  • 29. ● Support for Artifact groups ○ New v2 REST API with top level groupings support ● Improved Serdes libraries ○ Independent libraries for each data format ○ Avro, Protobuf and Json Schema ○ Simplified configuration ○ Lots of powerful configuration options EVENT-DRIVEN APIS & SCHEMA GOVERNANCE Service Registry 2.0 29 New Features Source: https://github.com/Apicurio/apicurio-registry
  • 30. ● Authentication support ○ Integration with the OIDC protocol for securing the Registry API ● Support for event-driven integrations ○ Allowing for custom or third party integrations ○ Webhooks ○ Kafka EVENT-DRIVEN APIS & SCHEMA GOVERNANCE Service Registry 2.0 30 New Features Source: https://github.com/Apicurio/apicurio-registry
  • 31. ● Implementation preview of the CNCF Schema Registry API. ● Part of the CloudEvents Working Group efforts for standardization and interoperability. EVENT-DRIVEN APIS & SCHEMA GOVERNANCE Service Registry 2.0 31 CNCF Schema Registry API support Source: https://github.com/cloudevents/spec/blob/master/schemaregistry/schemaregistry.md
  • 32. EVENT-DRIVEN APIS & SCHEMA GOVERNANCE 32 Source Code: https://github.com/maschind/apicurio-kafka-demo Photo credit: nickboos on Visualhunt
  • 33. EVENT-DRIVEN APIS & SCHEMA GOVERNANCE Red Hat Integration 33 Source ▸ Change Data Capture with Debezium API Management Events & Messaging Enterprise Integration Data Integration ▸ Comprehensive connectors ▸ Microservices orchestration ▸ Data Transformation ▸ Low-code iPaaS ▸ Serverless Composition with Camel K ▸ JMS Message Broker ▸ Wide Area Routing ▸ Data Streaming with Apache Kafka ▸ Self-service messaging ▸ API Manager ▸ API Gateway ▸ Istio Service Mesh Adapter ▸ Service Registry ▸ API Designer Tooling & Metadata
  • 34. EVENT-DRIVEN APIS & SCHEMA GOVERNANCE 34 Kafka Cluster Mirror Maker 1 Entity Operator (Topic, User) Cluster Operator Zookeeper Cluster HTTP Bridge Kafka Connect Cluster Debezium Connectors Camel Kafka Connectors Other Connectors Service Registry Mirror Maker 2 Zookeeper Cluster Kafka Cluster Kafka Connect Cluster Zookeeper Cluster Camel Kafka Connectors Debezium Connectors Java Clients / Kafka Streams (Inc Quarkus) Manages Manages Deploys Consumes Validates Validates Replicates Consumes / Produces Consumes / Produces Captures Connects Connects Converts Java Clients / Kafka Streams (Inc Quarkus) API Management Manages Single Sign On Authenticates
  • 35. ● Getting Started ● https://developers.redhat.com/blog/2019/12/16/getting-started-with-red-hat-integration-service-registry ● https://developers.redhat.com/blog/2020/12/09/new-features-and-storage-options-in-red-hat-integration-service-r egistry-1-1-ga ● Install and configure Service Registry for AMQ Streams ● Installing Service Registry from the OpenShift OperatorHub ● Configuring Service Registry with AMQ Streams storage on OpenShift ● Validating Schemas using Kafka Client Serializer/Deserializer ● Validating schemas using Kafka client serializers/deserializers ● Strategies to look up a schema ● Service Registry Java Client ● Managing Service Registry content using the Java client EVENT-DRIVEN APIS & SCHEMA GOVERNANCE Useful Bookmarks 35
  • 36. linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHat 36 Red Hat is the world’s leading provider of enterprise open source software solutions. Award-winning support, training, and consulting services make Red Hat a trusted adviser to the Fortune 500. Thank you
  • 37. Available for different solutions like Events (Kafka), API management (3scale) and EIPs (Fuse) SERVICE REGISTRY Service Registry 37 Targeted requirements for enterprise registry Source: https://github.com/Apicurio/apicurio-registry Flexibility Provide Lifecycle Management, Monitoring & Metrics, Operators, Pluggable Storage, validations. Enterprise Ready Target usage for OpenAPI, Async API, REST CRUD, UI, Search API Usage Support different artifacts: Avro, Protobuf, JSONSchema, OpenAPI, AsyncAPI, among others Inclusive Artifacts
  • 38. ● Datastore for standard event schemas and API designs ● Handles following data formats: ○ Apache Avro ○ JSON Schema ○ Protobuf (protocol buffers) ○ OpenAPI ○ AsyncAPI ○ GraphQL ○ Kafka Connect Schema ● Drop in replacement for Confluent Schema Registry SERVICE REGISTRY Service Registry 38 Overview Source: https://github.com/Apicurio/apicurio-registry
  • 39. ● Server ● Java REST Client ○ Perform basic operations ● Utilities ○ Kafka Serializer / Deserializer (Serde) ○ Kafka Connect Converters ○ Maven Plugin ■ Register artifacts ■ Test rules and compatibility ■ Download artifacts SERVICE REGISTRY Service Registry 39 Components Source: https://github.com/Apicurio/apicurio-registry
  • 40. ● Java + Quarkus based implementation ● Pluggable Storage ○ Kafka Streams (GA), JPA (TP), Infinispan (TP) ● Apicurio ○ Built on the Apicurio Registry community project ○ API first design ○ Custom REST API ○ Confluent (and IBM) compliant API SERVICE REGISTRY Service Registry 40 Implementation Source: https://github.com/Apicurio/apicurio-registry
  • 41. ● Validation Rules ○ Artifact must have valid content or server will reject it ○ Can check for valid syntax ○ Can also check for valid semantics (for some artifact types) SERVICE REGISTRY Service Registry 41 ● Compatibility Rules ○ Determines whether an update is allowed based on configured compatibility requirement setting ○ Multiple compatibility options including Backwards and Forwards compatible ○ Only relevant for updates (checks the new version against the previous version) ○ Controls the evolution of a single Artifact over time Registry Rules Source: https://github.com/Apicurio/apicurio-registry
  • 42. ● Backward Compatibility ○ New version of the artifact would be compatible with previous versions of that artifact ○ Records that use the previous version can be read using the new artifact ● Forward Compatibility ○ Exiting artifact is compatible with future versions of that artifact ○ Records that use the new artifact can still be retrieve using previous version. SERVICE REGISTRY Service Registry 42 Compatibility Rules Source: https://github.com/Apicurio/apicurio-registry
  • 43. ● Byte format is more efficient in Kafka ● Multi protocol support (Avro, Protobuf, OpenAPI, JSON, …) ● Ensures consistent data format ○ A producer client application uses a serializer to put the messages that it sends to a specific broker topic into the correct data format ○ A consumer client application uses a deserializer to get the messages that it consumes from a specific broker topic into the correct data format SERVICE REGISTRY Client Serializer / Deserializer 43 Source: https://access.redhat.com/documentation/en-us/red_hat_integration/2020-q4/html/getting_started_with_service_registry/using-kafka-client-serdes
  • 44. Available for different solutions like Events (Kafka), API management (3scale) and EIPs (Fuse) APICURIO REGISTRY Apicurio Registry 44 Overview Source: https://github.com/Apicurio/apicurio-registry API designs registry Provide Lifecycle Management, Monitoring & Metrics, Operators, Pluggable Storage, validations. Enterprise Ready Target usage for OpenAPI, Async API, REST CRUD, UI, Search API Usage Support different artifacts: Avro, Protobuf, JSONSchema, OpenAPI, AsyncAPI, among others Schema Registry
  • 45. Skeleton: Intro to Api First: ( why contract first? ) - Opena api - Async api Schemas in event driven architectures Schema registry for kafka applications Apicurio Registry 2.0 - New v2 REST API - New serdes - CNCF Schema Registry API support - Support for webhooks Demo - Basic config with spring boot? - Kafka streams on quarkus - Smallrye-reactive-messaging on quarkus 45
  • 46. 46 Event-driven APIs & schema governance for Apache Kafka Apicurio Registry Fabian Martinez Senior Software Quality Engineer @famargon13 EVENT-DRIVEN APIS & SCHEMA GOVERNANCE Hugo Guerrero APIs & Messaging Developer Advocate @hguerreroo
  • 47. linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHat 47 Red Hat is the world’s leading provider of enterprise open source software solutions. Award-winning support, training, and consulting services make Red Hat a trusted adviser to the Fortune 500. Thank you EVENT-DRIVEN APIS & SCHEMA GOVERNANCE
  • 48. EVENT-DRIVEN APIS & SCHEMA GOVERNANCE Contract-First API Development 48 What issues needs to be addressed in a Kafka world? ● Central registry where the API schemas (contracts) are stored and accessible ● Kafka is not aware of data types or schema formats > An instance to perform checks is needed ● API schemas are subject to change > Version control, compatibility and validity needs to be governed