Testing Kafka with Testcontainers There and Back Again Kafka Summit, London, 2022 @gamussa | #kafkasummit | @thekonginc

How many times you’ve heard @gamussa | #kafkasummit | @thekonginc

How many times you’ve heard «IT WORKS ON MY MACHINE 😝» @gamussa | #kafkasummit | @thekonginc

How many times you’ve heard @gamussa | #kafkasummit | @thekonginc

@gamussa | #kafkasummit | @thekonginc

@gamussa | #kafkasummit | @thekonginc

@gamussa | #kafkasummit | @thekonginc

docker pull confluentinc/cp-kafka:7.0.1 docker run -p 9092:9092 cp-kafka:7.0.1 @gamussa | #kafkasummit | @thekonginc

—version: ‘2’ services: zookeeper: image: confluentinc/cp-zookeeper:7.0.1 ports: - “32181:32181” environment: ZOOKEEPER_CLIENT_PORT: 32181 ZOOKEEPER_TICK_TIME: 2000 kafka: image: confluentinc/cp-kafka:7.0.1 ports: - “29092:29092” depends_on: - zookeeper environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:32181 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT:// localhost:29092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 @gamussa | #kafkasummit | @thekonginc

—version: ‘2’ services: zookeeper: image: confluentinc/cp-zookeeper:7.0.1 ports: - “32181:32181” environment: ZOOKEEPER_CLIENT_PORT: 32181 ZOOKEEPER_TICK_TIME: 2000 kafka: image: confluentinc/cp-kafka:7.0.1 ports: - “29092:29092” depends_on: - zookeeper environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:32181 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT:// localhost:29092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 @gamussa | #kafkasummit | @thekonginc

public KafkaContainer createKafka() { return new KafkaContainer(imageName(“cp-kafka”)); } @gamussa | #kafkasummit | @thekonginc

public KafkaContainer createKafka() { return new KafkaContainer(imageName(“cp-kafka”)); } @gamussa | #kafkasummit | @thekonginc

VIKTOR GAMOV Principal Developer Advocate @ Kong @gamussa | #kafkasummit | @thekonginc

@gamussa | #kafkasummit | @thekonginc

KAFKA IN ACTION IS OUT! Use code KAFKAA35 @gamussa | #kafkasummit | @thekonginc

@gamussa | #kafkasummit | @thekonginc

@gamussa | #kafkasummit | @thekonginc

docker pull confluentinc/cp-kafka:7.0.1 docker run -p 9092:9092 cp-kafka:7.0.1 @gamussa | #kafkasummit | @thekonginc

The Cure The Pain @gamussa | #kafkasummit | @thekonginc

The Pain The Cure @gamussa | #kafkasummit | @thekonginc

The Pain The Cure Port conflicts @gamussa | #kafkasummit | @thekonginc

The Pain The Cure Port conflicts Port randomization @gamussa | #kafkasummit | @thekonginc

The Pain The Cure Port conflicts Port randomization Hard-coded scenarios @gamussa | #kafkasummit | @thekonginc

The Pain The Cure Port conflicts Port randomization Hard-coded scenarios Data-driven tests @gamussa | #kafkasummit | @thekonginc

The Pain The Cure Port conflicts Port randomization Hard-coded scenarios Data-driven tests Slow test @gamussa | #kafkasummit | @thekonginc

The Pain The Cure Port conflicts Port randomization Hard-coded scenarios Data-driven tests Slow test Parallelization @gamussa | #kafkasummit | @thekonginc

@gamussa | #kafkasummit | @thekonginc

We think it’s a useful default option for creating a reliable environment for running tests. … Our teams have consistently found this library of programmable, lightweight and disposable containers to make functional tests more reliable. https://www.thoughtworks.com/en-us/radar/languages-and-frameworks/testcontainers @gamussa | #kafkasummit | @thekonginc

LET’S SEE SOME CODE! @gamussa | #kafkasummit | @thekonginc

What to do if you have no Docker? @gamussa | #kafkasummit | @thekonginc

https://www.atomicjar.com/2021/10/docker-on-windows-and-macos @gamussa | #kafkasummit | @thekonginc

@gamussa | #kafkasummit | @thekonginc

LET’S SEE SOME CODE! @gamussa | #kafkasummit | @thekonginc

How it’s started gAmUssA/testcontainers-java-module-con uent-platform fl @gamussa | #kafkasummit | @thekonginc

How it’s going testcontainers-all-things-kafka/cp-testcontainers @gamussa | #kafkasummit | @thekonginc

How it’s going testcontainers-all-things-kafka/cp-testcontainers-examples @gamussa | #kafkasummit | @thekonginc

ONE MORE THING… @gamussa | #kafkasummit | @thekonginc

https://www.thoughtworks.com/en-us/radar/languages-and-frameworks/testcontainers https://www.thoughtworks.com/radar/platforms/ka ka-api-without-ka ka f f @gamussa | #kafkasummit | @thekonginc

@gamussa | #kafkasummit | @thekonginc

DEVELOPMENT AND DEPLOYMENT WITH BORING SCRIPTS @gamussa | #kafkasummit | @thekonginc

DEVELOPMENT AND EXPLORE DEPLOYMENT THE WITH WORLD OF CONTAINERS BORING SCRIPTS @gamussa | #kafkasummit | @thekonginc

AS ALWAYS, HAVE A NICE DAY… Viktor Gamov @ gAmUssA @gamussa | #kafkasummit | @thekonginc