SlideShare a Scribd company logo
@gAmUssA | #techtalk | @confluentinc
I don’t always test my
streams, but when I do I do
it in production
June 16th / NAB Techtalk
@gAmUssA | #techtalk | @confluentinc
https://gamov.dev/nab-tech-talk-june2020
@gAmUssA | #techtalk | @confluentinc
Agenda
01
Kafka Apps
What are those?
02
Testing basics
Run Kafka and CP locally
03
Can we better?
Test with TestContainers
04
Testing Streams
TopologyTestDriver vs TestContainers
05
Testing ksqlDB
Ksql-test-runner vs TestContainers
06
Conclusion
Always Be Testing
@gAmUssA | #techtalk | @confluentinc
Preface
@gAmUssA | #techtalk | @confluentinc
Senior Developer:
- Where did you get this code?
Junior Developer:
- From Stackoverflow
Senior Developer:
- from question or answer?
@gAmUssA | #techtalk | @confluentinc
An example from my life:
Kafka Tutorials website
@gAmUssA | #techtalk | @confluentinc
Literate
Programming…
Do you speak it…
https://en.wikipedia.org/wiki/Literate_programming
@gAmUssA | #techtalk | @confluentinc
@gAmUssA | #techtalk | @confluentinc
@gAmUssA | #techtalk | @confluentinc
@gAmUssA | #techtalk | @confluentinc
@gAmUssA | #techtalk | @confluentinc
@gAmUssA | #techtalk | @confluentinc
Kafka Apps aka
streams
processing
@gAmUssA | #techtalk | @confluentinc
Stream Processing
is the toolset for
dealing with
events
as they move!
@gAmUssA | #techtalk | @confluentinc
What’s Kafka Apps?
My App
@gAmUssA | #techtalk | @confluentinc
Producers
Consumers
Kafka
@gAmUssA | #techtalk | @confluentinc
Schema, WUT?
@gAmUssA | #techtalk | @confluentinc
Let’s see some code
@gAmUssA | #techtalk | @confluentinc
Kafka Streams for
stream processing
@gAmUssA | #techtalk | @confluentinc
the KAFKA STREAMS API is a
JAVA API to
BUILD REAL-TIME APPLICATIONS
@gAmUssA | #techtalk | @confluentinc
Things Kafka Streams Does
Runs
everywhere
Clustering done
for you
Exactly-once
processing
Event-time
processing
Integrated
database
Joins, windowing,
aggregation
S/M/L/XL/XXL/XXXL
sizes
@gAmUssA | #techtalk | @confluentinc
https://kafka.apache.org/documentation/streams/developer-guide/testing.html
@gAmUssA | #techtalk | @confluentinc
Topology Test
driver
@gAmUssA | #techtalk | @confluentinc
• TopologyTestDriver
• Unit test your Kafka Streams
Topology
• Doesn’t Require Kafka infra to run
• Convenience methods to define
input and output
• Convenience methods to provide
fixtures and validate the results
@gAmUssA | #techtalk | @confluentinc
Let’s see some code
@gAmUssA | #techtalk | @confluentinc
@gAmUssA | #techtalk | @confluentinc
@gAmUssA | #techtalk | @confluentinc
When TTD doesn’t help?
https://habr.com/ru/company/
jugru/blog/499408/
@gAmUssA | #techtalk | @confluentinc
When TTD doesn’t help?
https://gamov.dev/
livestreams-s01e05
@gAmUssA | #techtalk | @confluentinc
Ksqldb for
Stream processing
@gAmUssA | #techtalk | @confluentinc
@gAmUssA | #techtalk | @confluentinc
@gAmUssA | #techtalk | @confluentinc
Let’s see some code
@gAmUssA | #techtalk | @confluentinc
Conclusion
@gAmUssA | #techtalk | @confluentinc
What did you learn
today?
•What’s Kafka apps apps
and how to test them
•Producer / Consumer
API
•Kafka Streams
•ksqlDB
•How containers and
TestContainer help a lot
@gAmUssA | #techtalk | @confluentinc
@gAmUssA | #techtalk | @confluentinc
Want to learn more?
developer.confluent.io
Learn Kafka.
Start building with
Apache Kafka at
Confluent Developer.
@gAmUssA | #techtalk | @confluentinc
ALL UPCOMING MEETUPS
NEW EVENT EMAIL ALERTS
THE CONFLUENT MEETUP HUB
CNFL.IO/MEETUP-HUB
VIDEOS OF PAST
MEETUPS
SLIDES FROM THE
TALKS
@gAmUssA | #techtalk | @confluentinc
Confluent Community
Slack
A vibrant community of over 16,000
members
Come along and discuss Apache Kafka and
Confluent Platform on dedicated channels
including #ksqlDB, #connect, #clients, and
more
http://cnfl.io/slack
@gAmUssA | #techtalk | @confluentinc
Free eBooks Designing Event-Driven Systems
Ben Stopford
Kafka: The Definitive Guide
Neha Narkhede, Gwen Shapira, Todd Palino
Making Sense of Stream Processing
Martin Kleppmann
I ❤ Logs
Jay Kreps
http://cnfl.io/book-bundle
@gAmUssA | #techtalk | @confluentinc

More Related Content

PPTX
Test Automation using Athena by OLX - Intro
PDF
TuleapCon2017 -Automating Jenkins build with Tuleap trackers
PDF
Debugging Tips and Tricks
PPTX
Episode 19 - Asynchronous Apex - Batch apex & schedulers
PDF
Gameplan's Panic-Inspired Stats Dashboard called Fergie
PPTX
Selenoid i Allure - jak używać tych narzędzi razem
PDF
SPA Flask Vue
PPT
WordPress Development: Tracking Your Code With Version Control
Test Automation using Athena by OLX - Intro
TuleapCon2017 -Automating Jenkins build with Tuleap trackers
Debugging Tips and Tricks
Episode 19 - Asynchronous Apex - Batch apex & schedulers
Gameplan's Panic-Inspired Stats Dashboard called Fergie
Selenoid i Allure - jak używać tych narzędzi razem
SPA Flask Vue
WordPress Development: Tracking Your Code With Version Control

What's hot (19)

PDF
TuleapCon2017-Quality-Assurance-Tuleap-Enterprise
PDF
Pain Free Frontend Development
PPTX
RESTful API Testing using Postman, Newman, and Jenkins
PDF
Design & Prototype an API
ODP
Accelerate Quality with Postman - Basics
PPTX
Episode 2 conditional flows & loops
PPTX
Episode 16 - Introduction to LWC
PDF
Building serverless-applications
PDF
Postman Webinar: Postman 101
PDF
Mobile automation using appium.pptx
PDF
Release Responsibly
PDF
Athena by OLX
PPTX
Sql Saturday 895 - SQL Server e PowerShell: from Zero to Hero
ODP
Elm & Elixir: Functional Programming and Web
PDF
5分で作る開発環境
PPTX
Bringing Dev and Ops together with ChatOps
PPTX
Functional REST API testing in ASP.NET Core
PDF
Learnings Building Alexa Skills with PHP
PPTX
A Sip Of Elixir
TuleapCon2017-Quality-Assurance-Tuleap-Enterprise
Pain Free Frontend Development
RESTful API Testing using Postman, Newman, and Jenkins
Design & Prototype an API
Accelerate Quality with Postman - Basics
Episode 2 conditional flows & loops
Episode 16 - Introduction to LWC
Building serverless-applications
Postman Webinar: Postman 101
Mobile automation using appium.pptx
Release Responsibly
Athena by OLX
Sql Saturday 895 - SQL Server e PowerShell: from Zero to Hero
Elm & Elixir: Functional Programming and Web
5分で作る開発環境
Bringing Dev and Ops together with ChatOps
Functional REST API testing in ASP.NET Core
Learnings Building Alexa Skills with PHP
A Sip Of Elixir
Ad

Similar to NAB Tech Talk (20)

PDF
I Don’t Always Test My Streams, But When I Do, I Do it in Production (Viktor ...
PDF
Delivering Cloud-Native Data Pipelines with Kafka Connect on Kubernetes | Vik...
PPTX
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
PDF
PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"
PPT
The Dark arts of building your own framework (Andrey Glashenko)
PDF
Implementing End-To-End Tracing With Roman Kolesnev and Antony Stubbs | Curre...
PPTX
Gear up for Continuous Integration with Salesforce DX, Circle CI and Clayton
PPTX
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
PDF
Scaling Machine Learning Systems up to Billions of Predictions per Day
PDF
The imitation Game - EMFCamp 2022.pdf
PPTX
Spark Summit EU talk by Kaarthik Sivashanmugam
PPTX
DevOps Pipelines and Metrics Driven Feedback Loops
PDF
Azure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
PPSX
CI-CD Jenkins, GitHub Actions, Tekton
PDF
Kafka on Kubernetes: Does it really have to be "The Hard Way"? (Viktor Gamov ...
PDF
SpringOne Tour Denver - Continuous Delivery of your Application
PDF
Continuous Deployment of your Application - SpringOne Tour St. Louis
PDF
Execution Plans in practice - how to make SQL Server queries faster - Damian ...
PDF
Akka streams kafka kinesis
PPTX
B4UConference_Sexy Angular Stack
I Don’t Always Test My Streams, But When I Do, I Do it in Production (Viktor ...
Delivering Cloud-Native Data Pipelines with Kafka Connect on Kubernetes | Vik...
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"
The Dark arts of building your own framework (Andrey Glashenko)
Implementing End-To-End Tracing With Roman Kolesnev and Antony Stubbs | Curre...
Gear up for Continuous Integration with Salesforce DX, Circle CI and Clayton
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Scaling Machine Learning Systems up to Billions of Predictions per Day
The imitation Game - EMFCamp 2022.pdf
Spark Summit EU talk by Kaarthik Sivashanmugam
DevOps Pipelines and Metrics Driven Feedback Loops
Azure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
CI-CD Jenkins, GitHub Actions, Tekton
Kafka on Kubernetes: Does it really have to be "The Hard Way"? (Viktor Gamov ...
SpringOne Tour Denver - Continuous Delivery of your Application
Continuous Deployment of your Application - SpringOne Tour St. Louis
Execution Plans in practice - how to make SQL Server queries faster - Damian ...
Akka streams kafka kinesis
B4UConference_Sexy Angular Stack
Ad

More from confluent (20)

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

Recently uploaded (20)

PDF
KodekX | Application Modernization Development
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
cuic standard and advanced reporting.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Machine learning based COVID-19 study performance prediction
KodekX | Application Modernization Development
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Electronic commerce courselecture one. Pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Review of recent advances in non-invasive hemoglobin estimation
Encapsulation_ Review paper, used for researhc scholars
MYSQL Presentation for SQL database connectivity
Spectral efficient network and resource selection model in 5G networks
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
MIND Revenue Release Quarter 2 2025 Press Release
cuic standard and advanced reporting.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Understanding_Digital_Forensics_Presentation.pptx
Machine learning based COVID-19 study performance prediction

NAB Tech Talk