debezium/dbz

Implement automated testing framework for debezium-examples

Open

#1,810 opened on Apr 13, 2026

View on GitHub
 (16 comments) (0 reactions) (1 assignee)HTML (6 forks)auto 404
component/examplesgood first issuetype/task

Repository metrics

Stars
 (3 stars)
PR merge metrics
 (PR metrics pending)

Description

Current Behaviour

Most examples in the repository lack automated tests, making it difficult to:

  • Verify examples work correctly after Debezium version upgrades
  • Catch breaking changes before they reach users
  • Ensure examples continue to work as Docker images and dependencies evolve
  • Maintain confidence in example code quality

Currently, only the postgres-failover-slots example has automated testing via GitHub Actions.

Expected Behaviour

Implement a test framework similar to the postgres-failover-slots example for all applicable examples.

Reference Implementation:

The postgres-failover-slots example demonstrates a working approach:

  • Test script: scripts/run-example-test.py - Python-based test runner
  • Test manifest: postgres-failover-slots/test.yaml - Declarative YAML DSL for test steps
  • GitHub Actions: .github/workflows/postgres-failover-slots-workflow.yml - CI integration

The test framework supports:

  • Docker Compose service orchestration
  • HTTP endpoint polling (for service readiness)
  • Database operations via docker compose exec
  • Kafka message consumption and verification
  • Flexible wait conditions and timeouts

Related

  • debezium/dbz#1165 PR discussion

Contributor guide