SlideShare a Scribd company logo
So You Want to
Write a Connector
Randall Hauch
@rhauch
Apps
Stream
Processing
Search
KV
RDBMS DW
Real Time
Analytics
Monitoring
So You Want to Write a Connector?
PRODUCER
Producer

Application
PRODUCER
CONSUMER
Producer

Application
Consumer

Application
PRODUCER
CONSUMER
Producer

Application
Consumer

Application
• Where to restart ?
• How to scale and parallelize ?
• What metrics to capture ?
• How to handle failure & retries ?
• How to properly use the
producer / consumer API ?
PRODUCER
CONSUMER
KAFKA CONNECT KAFKA CONNECT
PRODUCER
CONSUMER
Source
Connector ConverterSMTs
KAFKA CONNECT KAFKA CONNECT
PRODUCER
CONSUMER
Sink
ConnectorSMTsSource
Connector ConverterSMTs Converter
KAFKA CONNECT KAFKA CONNECT
PRODUCER
CONSUMER
Sink
ConnectorSMTsSource
Connector ConverterSMTs Converter
KAFKA CONNECT KAFKA CONNECT
• Offset management
• Elastic scalability
• Parallelization
• Task distribution
• Metrics
• Failure & retries
• Configuration management
• REST API
• Schemas & data types
Discover connectors,
SMTs, and converters
Discover connectors,
SMTs, and converters
Discover connectors,
SMTs, and converters
Descriptions, licensing,
support, and more
Discover connectors,
SMTs, and converters
Descriptions, licensing,
support, and more
Discover connectors,
SMTs, and converters
Simple installs
Descriptions, licensing,
support, and more
Discover connectors,
SMTs, and converters
Simple installs
Descriptions, licensing,
support, and more
PRODUCER
CONSUMER
Sink
ConnectorSMTsSource
Connector ConverterSMTs Converter
KAFKA CONNECT KAFKA CONNECT
KAFKA CONNECT
Starting and Running
RESTAPIRESTAPIRESTAPI
KAFKA CONNECT
Starting and Running
RESTAPIRESTAPIRESTAPI
KAFKA CONNECT
validate
C
Starting and Running
RESTAPIRESTAPIRESTAPI
KAFKA CONNECT
Connector
validate
C
Starting and Running
RESTAPIRESTAPIRESTAPI
KAFKA CONNECT
Starting and Running
RESTAPIRESTAPIRESTAPI
KAFKA CONNECT
Starting and Running
C
deploy
RESTAPIRESTAPIRESTAPI
KAFKA CONNECT
Connector
Starting and Running
C
deploy
RESTAPIRESTAPIRESTAPI
KAFKA CONNECT
Connector
Starting and Running
C
start(…)
deploy
RESTAPIRESTAPIRESTAPI
KAFKA CONNECT
Connector
Starting and Running
C
RESTAPI
Connector
RESTAPI
RESTAPI
C
Starting and Running
RESTAPI
Connector
RESTAPI
RESTAPI
C
taskConfigs(…)
Starting and Running
RESTAPI
Connector
RESTAPI
RESTAPI
C
taskConfigs(…)
Starting and Running
RESTAPI
Connector
RESTAPI
RESTAPI
C
taskConfigs(…)
TTTT
Starting and Running
RESTAPI
Connector
RESTAPI
RESTAPI
C
taskConfigs(…)
TTTT
Starting and Running
RESTAPI
Connector
RESTAPI
RESTAPI
C
TTTT
TTTT
Starting and Running
TTTT
RESTAPI
Connector
RESTAPI
RESTAPI
C
TTT
T
TTTT
Task
start(…)
Starting and Running
TTTT
RESTAPI
Connector
RESTAPI
RESTAPI
C
TTT
T
TTTT
Task
start(…)
Starting and Running
TTTT
RESTAPI
Connector
RESTAPI
RESTAPI
C
TTT
T
TTTT
Task
poll(…)
Starting and Running
TTTT
RESTAPI
Connector
RESTAPI
RESTAPI
C
Task Task Task Task
poll(…) poll(…) poll(…)poll(…)
TTTT
RESTAPI
Connector
RESTAPI
RESTAPI
C
Task Task Task Task
Other
Task(s)
Other
Task(s)
Other
Task(s)
poll(…) poll(…) poll(…)poll(…)
Other
Connector(s)
TTTT
RESTAPI
Connector
RESTAPI
RESTAPI
C
TTTT
TTTT
Task Task Task Task
Other
Task(s) Other
Task(s)
Other
Task(s)
Other
Connector(s)
RESTAPI
Connector
RESTAPI
RESTAPI
C
TTTT
TTTT
Task Task Task Task
Other
Task(s) Other
Task(s)
Other
Task(s)
Other
Connector(s)
RESTAPI
Connector
RESTAPI
C
TTTT
TTTT
Task Task Task
Other
Task(s)
Other
Task(s)
Other
Connector(s)
RESTAPI
Connector
RESTAPI
C
TTTT
TTTT
Task Task Task
Other
Task(s)
Recovery from Failures
Other
Task(s)
Other
Connector(s)
RESTAPI
Connector
RESTAPI
C
TTTT
TTTT
Task Task Task
Other
Task(s)
Recover from Failures
Other
Task(s)
Other
Connector(s)
RESTAPI
Connector
RESTAPI
C
TTTT
TTTT
Task Task Task Task
Other
Task(s)
Other
Task(s)
Other
Connector(s)
RESTAPI
Connector
RESTAPI
C
TTTT
TTTT
Task Task Task Task
Other
Task(s)
Other
Connector(s)
Other
Task(s)
RESTAPI
Connector
RESTAPI
C
TTTT
TTTT
Task Task Task Task
Stopping
Other
Task(s)
Other
Connector(s)
Other
Task(s)
RESTAPI
Connector
RESTAPI
C
TTTT
TTTT
Task Task Task Task
Stopping
stop() stop() stop()stop()
Other
Task(s)
Other
Connector(s)
Other
Task(s)
RESTAPI
Connector
RESTAPI
C
TTTT
TTTT
Stopping
Other
Task(s)
Other
Connector(s)
Other
Task(s)
RESTAPI
RESTAPI
C
TTTT
TTTT
Stopping
Other
Task(s)
Other
Connector(s)
Other
Task(s)
RESTAPI
RESTAPI
C
TTTT
TTTT
Kafka Connect API
class SinkConnector extends Connector {}
class SourceConnector extends Connector {}
class Connector {
String version();
ConfigDef config();
Class<? extends Task> taskClass();
void start(Map<String, String> props);
List<Map<String, String>> taskConfigs(int maxTasks);
void stop();
...
}
void start(Map<String, String> props);
• The user-specified connector configuration
• Optionally talk to external system to get information about tasks
• Determine the task configuration
• Optionally start thread(s) to monitor external system, and if needed 

ask for task reconfiguration
List<Map<String, String>> taskConfigs(int maxTasks);
• Tell Connect the configurations for each of the tasks
abstract class SourceTask implements Task {
protected SourceTaskContext context;
void start(Map<String, String> props);
List<SourceRecord> poll() throws InterruptedException;
void stop();
...
}
void start(Map<String, String> props);
• This task’s configuration that was created by your connector
• Read previously committed offsets to know where in the external system
to start reading
• Create any resources it might need
- Connections to external system
- Buffers, queues, threads, etc.
• Called frequently
• Get the next batch of records that Connect should write to Kafka
- block until there are “enough” records to return
- return null if no records right now
• For systems that push data
- use separate thread to receive and process the data and enqueue
- poll then dequeues and returns records
List<SourceRecord> poll() throws InterruptedException;
topic : String
partition : Integer
keySchema : Schema
key : Object
valueSchema : Schema
value : Object
timestamp : Long
headers : Headers
sourcePartition : Map
sourceOffset : Map
• Topic where the record is to be written
• Optional partition # for the topic
• Optional key and the schema that describes it
• Optional value and the schema that describes it
• Optional headers
• Optional timestamp
• Source “partition” and “offset"
- Describes where this record originated
- Defined by connector, used only by connector
- Connect captures last partition+offset that it writes,
periodically committed to connect-offsets topic
- When task starts up, it reads these to know where it
should start
- TIP: reuse the same partition Map instance
• Serialized via Converters
SourceRecord
name : String
version : String
doc : String
type : Type
parameters : Map
fields : List<Field>
name : String
schema : Schema
index : int
Field
Schema • Name (required), version, and documentation
• Type of schema: primitive, Map, Array, Struct
• Whether the value described by the schema is optional
• Optional metadata parameters
• Information about the structure:
- For Struct schemas, the fields
- For Map schemas, the key schema and value schema
- For Array schemas, the element schema
• Name of field that this schema describes
• Schema for field value
• Index of field within the Struct
abstract class SinkTask implements Task {
protected SingTaskContext context;
void start(Map<String, String> props);
void open(Collection<TopicPartition> partitions);
void put(Collection<SinkRecord> records);
Map<TopicPartition, OffsetAndMetadata> preCommit(
Map<TopicPartition, OffsetAndMetadata> currentOffsets
);
void close(Collection<TopicPartition> partitions);
void stop();
...
}
void start(Map<String, String> props);
• This task’s configuration that was created by your connector
- includes topics and topics.regex property
• Start the task and create any resources it might need
void open(Collection<TopicPartition> partitions);
• Optionally pre-allocate writers and resources
• Consumer will by default start based on its own committed offsets
• Or use context.offsets(...) to set the desired starting point
• Called frequently with next batch of records returned from the consumer
• Size of batch depends on
- availability of records in our assigned topic partitions, and
- consumer settings in worker, including:
consumer.fetch.min.bytes and consumer.fetch.max.bytes
consumer.max.poll.interval.ms and consumer.max.poll.records
• Either write directly to external system or 

buffer them and write when there are “enough” to send
void put(Collection<SinkRecord> records);
• Topic, partition, and offset from where the record
was consumed
• Optional key and the schema that describes it
• Optional value and the schema that describes it
• Timestamp and whether its create/append/none
• Headers
- ordered list of name-value pairs
- utility to convert value to desired type, if possible
• Deserialized via Converters
topic : String
partition : Integer
keySchema : Schema
key : Object
valueSchema : Schema
value : Object
timestamp : Long
timestampType : enum
offset : long
headers : Headers
SinkRecord
• The topic partitions that are no longer associated with the task
• Close any writers / resources for these topic partitions
void close(Collection<TopicPartition> partitions);
Sink Tasks and Exactly Once Semantics (EOS)
• Must track the offsets of records that were written to external system
- typically involves atomically storing offsets in external system
- for convenience can optionally still have consumer commit those offsets
• When a task restarts and is assigned topic partitions, it
- looks in the external system for the next offset for each topic partition
- set in the task context the exact offsets where to start consuming
• Called periodically based upon worker’s offset.flush.interval.ms
- defaults to 60 seconds
• Supplied the current offsets for consumed records as of the last call to put(…)
• Return the offsets that the consumer should actually commit
- should reflect what was actually written so far to the external system for EOS
- or return null if consumer should not commit offsets
Map<TopicPartition, OffsetAndMetadata> preCommit(
Map<TopicPartition, OffsetAndMetadata> currentOffsets
);
Considerations
Configuration
• Only way to control a connector
• Make as simple as possible, but no simpler
• Use validators and recommenders in ConfigDef
• Strive for backward compatibility
Message Ordering
• Each Kafka topic partition is totally ordered
• Design connectors around this notion
Scaling
• Use tasks to parallelize work
- each task runs in its own thread
- you can start other threads, but always clean them up properly
• Sink connectors - typically use # of tasks specified by user
• Source connectors - only one task (or several) may make sense
Testing
• Design for testability
• Unit tests and integration tests in your build
- look for reusable integration tests (PR5516) using 

embedded ZK & Kafka
• Continuous integration for regression tests
• System tests use real ZK, Kafka, Connect, and external systems
• Performance and soak tests
Be Resilient
• What are the failure modes?
• Can you retry (forever) rather than fail?
- consider RetriableException
Logging
• Don’t overuse ERROR or WARN
• Use INFO level so users know what’s happening under normal
operation 

and when misbehaving
• Use DEBUG so users can diagnose why it’s behaving strangely
• Use TRACE for you
Security
• Use PASSWORD configuration type in ConfigDef
• Communicate securely with external system
• Don’t log records (except maybe at TRACE)
Package Names
• Don’t use org.apache.kafka.* packages
• These are reserved for use by the Apache Kafka project
Packaging and Deployment
/usr/share/java
/opt/java/my-plugin
kafka-connect-jdbc
kafka-connect-s3
kafka-connect-hdfs
...
debezium-mysql
...
Connect’s Plugin Path
• Added in AK 0.11.0
• Isolates connectors JARs
• Set in Connect worker configuration
on each machine
• Value is comma-separated list of
the directories that contain
connector directories
/usr/share/java
/opt/java/my-plugin
kafka-connect-jdbc
kafka-connect-s3
kafka-connect-hdfs
...
debezium-mysql
...
These should be on plugin.pathConnect’s Plugin Path
• Added in AK 0.11.0
• Isolates connectors JARs
• Set in Connect worker configuration
on each machine
• Value is comma-separated list of
the directories that contain
connector directories
Confluent Hub Client
• Included in Confluent Platform (or can be installed separately)
• Sets plugin.path correctly
• Install a connector plugin, transform plugin, or converter plugin:
confluent-hub install <owner>/<connector>:<version|latest>
• Example:
confluent-hub install debezium/debezium-connector-mysql:latest
• Help
confluent-hub help
confluent-hub install <owner>/<connector>:<version>
confluent-hub install debezium/debezium-connector-mysql:latest
confluent-hub help
https://docs.confluent.io/current/connect/managing/confluent-hub/component-archive.html
<plugin>
<groupId>io.confluent</groupId>
<version>0.11.1</version>
<artifactId>kafka-connect-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>kafka-connect</goal>
</goals>
<configuration>
<title>My Super Connector</title>
<documentationUrl>...</documentationUrl>
<description>...</description>
...
<tags>
<tag>database</tag>
...
</tags>
</configuration>
</execution>
</executions>
</plugin>
Packaging for Confluent Hub
• Packaging Plugin for Maven
• Defines metadata for Confluent Hub
• Assembles an archive for installation
• includes correct JARs, images, docs, …
• Ready for you to submit
Kafka Connect Evolution
Recent Improvements
AK 1.1
• Expose record headers (KIP-145)
• Bug fixes and minor improvements
AK 2.0
• Error handling (KIP-298)
• Externalized secrets (KIP-297)
• Connect REST plugin (KIP-285)
• Bug fixes and minor improvements
Planned Improvements
• Bug fixes and minor improvements
• Logging improvements (KAFKA-3816)
• Integration test framework (pr 5516)
• Incremental cooperative rebalancing (wiki)
• Idempotent source connectors (KIP-318)
• Create topics for source connectors (KIP-158)
• Exactly once source connectors
• And many more
1. You can write connectors!

2. Connect does most of the work for you

3. Connectors focus on
- using the external system
- mapping external data to records on topics and partitions
Key Takeaways
Resources
Apache Kafka Resources
- kafka.apache.org (docs, mailing lists, etc.)
Confluent Resources
- hub.confluent.io
- docs.confluent.io
- blog.confluent.io
- Slack community @ confluent.io/contact

More Related Content

PPTX
Kafka presentation
Mohammed Fazuluddin
 
PPTX
Kafka 101
Aparna Pillai
 
PPTX
Apache Calcite overview
Julian Hyde
 
PPTX
APACHE KAFKA / Kafka Connect / Kafka Streams
Ketan Gote
 
PPTX
kafka
Amikam Snir
 
PDF
Kafka Streams vs. KSQL for Stream Processing on top of Apache Kafka
Kai Wähner
 
PDF
Solving PostgreSQL wicked problems
Alexander Korotkov
 
Kafka presentation
Mohammed Fazuluddin
 
Kafka 101
Aparna Pillai
 
Apache Calcite overview
Julian Hyde
 
APACHE KAFKA / Kafka Connect / Kafka Streams
Ketan Gote
 
Kafka Streams vs. KSQL for Stream Processing on top of Apache Kafka
Kai Wähner
 
Solving PostgreSQL wicked problems
Alexander Korotkov
 

What's hot (20)

PPTX
Apache kafka
Srikrishna k
 
PDF
Diving into Delta Lake: Unpacking the Transaction Log
Databricks
 
PDF
Introduction to Kafka Streams
Guozhang Wang
 
PDF
Apache Kafka - Martin Podval
Martin Podval
 
PDF
Kafka Streams: What it is, and how to use it?
confluent
 
PDF
The Parquet Format and Performance Optimization Opportunities
Databricks
 
PDF
Apache Kafka’s Transactions in the Wild! Developing an exactly-once KafkaSink...
HostedbyConfluent
 
PPTX
Centralized Logging System Using ELK Stack
Rohit Sharma
 
PDF
Building an Interactive Query Service in Kafka Streams With Bill Bejeck | Cur...
HostedbyConfluent
 
PDF
Streaming Design Patterns Using Alpakka Kafka Connector (Sean Glover, Lightbe...
confluent
 
PPTX
Deep Dive into Apache Kafka
confluent
 
PDF
From Zero to Hero with Kafka Connect
confluent
 
PDF
Apache Calcite (a tutorial given at BOSS '21)
Julian Hyde
 
PDF
Fundamentals of Apache Kafka
Chhavi Parasher
 
PDF
Apache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
Databricks
 
PPTX
A visual introduction to Apache Kafka
Paul Brebner
 
PDF
Presto Summit 2018 - 09 - Netflix Iceberg
kbajda
 
PDF
ksqlDB - Stream Processing simplified!
Guido Schmutz
 
PDF
Spark with Delta Lake
Knoldus Inc.
 
PPTX
Kafka replication apachecon_2013
Jun Rao
 
Apache kafka
Srikrishna k
 
Diving into Delta Lake: Unpacking the Transaction Log
Databricks
 
Introduction to Kafka Streams
Guozhang Wang
 
Apache Kafka - Martin Podval
Martin Podval
 
Kafka Streams: What it is, and how to use it?
confluent
 
The Parquet Format and Performance Optimization Opportunities
Databricks
 
Apache Kafka’s Transactions in the Wild! Developing an exactly-once KafkaSink...
HostedbyConfluent
 
Centralized Logging System Using ELK Stack
Rohit Sharma
 
Building an Interactive Query Service in Kafka Streams With Bill Bejeck | Cur...
HostedbyConfluent
 
Streaming Design Patterns Using Alpakka Kafka Connector (Sean Glover, Lightbe...
confluent
 
Deep Dive into Apache Kafka
confluent
 
From Zero to Hero with Kafka Connect
confluent
 
Apache Calcite (a tutorial given at BOSS '21)
Julian Hyde
 
Fundamentals of Apache Kafka
Chhavi Parasher
 
Apache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
Databricks
 
A visual introduction to Apache Kafka
Paul Brebner
 
Presto Summit 2018 - 09 - Netflix Iceberg
kbajda
 
ksqlDB - Stream Processing simplified!
Guido Schmutz
 
Spark with Delta Lake
Knoldus Inc.
 
Kafka replication apachecon_2013
Jun Rao
 
Ad

Similar to So You Want to Write a Connector? (20)

PDF
How to Build an Apache Kafka® Connector
confluent
 
PDF
How to Write Great Kafka Connectors
confluent
 
PDF
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...
confluent
 
PDF
Tips and tricks for developing streaming and table connectors - Eron Wright,...
Flink Forward
 
PDF
Tips and Tricks for Developing Streaming and table Connectors - Wron Wright, ...
Flink Forward
 
PDF
Flink Connector Development Tips & Tricks
Eron Wright
 
PPTX
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...
confluent
 
PDF
Building Realtime Data Pipelines with Kafka Connect and Spark Streaming
Jen Aman
 
PDF
Building Realtim Data Pipelines with Kafka Connect and Spark Streaming
Guozhang Wang
 
PDF
Structured Streaming with Kafka
datamantra
 
PDF
Flink Forward SF 2017: Srikanth Satya & Tom Kaitchuck - Pravega: Storage Rei...
Flink Forward
 
PDF
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streaming
Yaroslav Tkachenko
 
PDF
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streamin...
HostedbyConfluent
 
PDF
Cómo hemos implementado semántica de "Exactly Once" en nuestra base de datos ...
javier ramirez
 
PDF
Flink Forward Berlin 2017: Joey Frazee, Suneel Marthi - Moving Beyond Moving ...
Flink Forward
 
PDF
Moving beyond moving bytes
Suneel Marthi
 
PDF
Indeed Flex: The Story of a Revolutionary Recruitment Platform
HostedbyConfluent
 
PPTX
Software architecture for data applications
Ding Li
 
PDF
Building Continuous Application with Structured Streaming and Real-Time Data ...
Databricks
 
PPTX
Apache Apex: Stream Processing Architecture and Applications
Comsysto Reply GmbH
 
How to Build an Apache Kafka® Connector
confluent
 
How to Write Great Kafka Connectors
confluent
 
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...
confluent
 
Tips and tricks for developing streaming and table connectors - Eron Wright,...
Flink Forward
 
Tips and Tricks for Developing Streaming and table Connectors - Wron Wright, ...
Flink Forward
 
Flink Connector Development Tips & Tricks
Eron Wright
 
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...
confluent
 
Building Realtime Data Pipelines with Kafka Connect and Spark Streaming
Jen Aman
 
Building Realtim Data Pipelines with Kafka Connect and Spark Streaming
Guozhang Wang
 
Structured Streaming with Kafka
datamantra
 
Flink Forward SF 2017: Srikanth Satya & Tom Kaitchuck - Pravega: Storage Rei...
Flink Forward
 
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streaming
Yaroslav Tkachenko
 
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streamin...
HostedbyConfluent
 
Cómo hemos implementado semántica de "Exactly Once" en nuestra base de datos ...
javier ramirez
 
Flink Forward Berlin 2017: Joey Frazee, Suneel Marthi - Moving Beyond Moving ...
Flink Forward
 
Moving beyond moving bytes
Suneel Marthi
 
Indeed Flex: The Story of a Revolutionary Recruitment Platform
HostedbyConfluent
 
Software architecture for data applications
Ding Li
 
Building Continuous Application with Structured Streaming and Real-Time Data ...
Databricks
 
Apache Apex: Stream Processing Architecture and Applications
Comsysto Reply GmbH
 
Ad

More from confluent (20)

PDF
Stream Processing Handson Workshop - Flink SQL Hands-on Workshop (Korean)
confluent
 
PPTX
Webinar Think Right - Shift Left - 19-03-2025.pptx
confluent
 
PDF
Migration, backup and restore made easy using Kannika
confluent
 
PDF
Five Things You Need to Know About Data Streaming in 2025
confluent
 
PDF
Data in Motion Tour Seoul 2024 - Keynote
confluent
 
PDF
Data in Motion Tour Seoul 2024 - Roadmap Demo
confluent
 
PDF
From Stream to Screen: Real-Time Data Streaming to Web Frontends with Conflue...
confluent
 
PDF
Confluent per il settore FSI: Accelerare l'Innovazione con il Data Streaming...
confluent
 
PDF
Data in Motion Tour 2024 Riyadh, Saudi Arabia
confluent
 
PDF
Build a Real-Time Decision Support Application for Financial Market Traders w...
confluent
 
PDF
Strumenti e Strategie di Stream Governance con Confluent Platform
confluent
 
PDF
Compose Gen-AI Apps With Real-Time Data - In Minutes, Not Weeks
confluent
 
PDF
Building Real-Time Gen AI Applications with SingleStore and Confluent
confluent
 
PDF
Unlocking value with event-driven architecture by Confluent
confluent
 
PDF
Il Data Streaming per un’AI real-time di nuova generazione
confluent
 
PDF
Unleashing the Future: Building a Scalable and Up-to-Date GenAI Chatbot with ...
confluent
 
PDF
Break data silos with real-time connectivity using Confluent Cloud Connectors
confluent
 
PDF
Building API data products on top of your real-time data infrastructure
confluent
 
PDF
Speed Wins: From Kafka to APIs in Minutes
confluent
 
PDF
Evolving Data Governance for the Real-time Streaming and AI Era
confluent
 
Stream Processing Handson Workshop - Flink SQL Hands-on Workshop (Korean)
confluent
 
Webinar Think Right - Shift Left - 19-03-2025.pptx
confluent
 
Migration, backup and restore made easy using Kannika
confluent
 
Five Things You Need to Know About Data Streaming in 2025
confluent
 
Data in Motion Tour Seoul 2024 - Keynote
confluent
 
Data in Motion Tour Seoul 2024 - Roadmap Demo
confluent
 
From Stream to Screen: Real-Time Data Streaming to Web Frontends with Conflue...
confluent
 
Confluent per il settore FSI: Accelerare l'Innovazione con il Data Streaming...
confluent
 
Data in Motion Tour 2024 Riyadh, Saudi Arabia
confluent
 
Build a Real-Time Decision Support Application for Financial Market Traders w...
confluent
 
Strumenti e Strategie di Stream Governance con Confluent Platform
confluent
 
Compose Gen-AI Apps With Real-Time Data - In Minutes, Not Weeks
confluent
 
Building Real-Time Gen AI Applications with SingleStore and Confluent
confluent
 
Unlocking value with event-driven architecture by Confluent
confluent
 
Il Data Streaming per un’AI real-time di nuova generazione
confluent
 
Unleashing the Future: Building a Scalable and Up-to-Date GenAI Chatbot with ...
confluent
 
Break data silos with real-time connectivity using Confluent Cloud Connectors
confluent
 
Building API data products on top of your real-time data infrastructure
confluent
 
Speed Wins: From Kafka to APIs in Minutes
confluent
 
Evolving Data Governance for the Real-time Streaming and AI Era
confluent
 

Recently uploaded (20)

PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PPTX
Simple and concise overview about Quantum computing..pptx
mughal641
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
Simple and concise overview about Quantum computing..pptx
mughal641
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 

So You Want to Write a Connector?