Skip to content

Kafka avro producer sharing Contract Tests' contracts with downstream consumers, while using Confluent Schema Registry

Notifications You must be signed in to change notification settings

vspiliop/kafka-contract-test-producer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kafka avro producer sharing Contract Tests' contracts with downstream consumers, while using Confluent Schema Registry. Check out https://github.com/vspiliop/kafka-contract-test-consumer for how to use the published contracts.

Key points:

  • How to define an avro contract on the producer
  • How to share it with downstream consumers
  • How producer makes sure its published contracts are correct or its build will fail
  • How the consumers import the contracts and use them for testing their business logic.

Generate documentation

Documentation explaining the concepts demoed by this repo and https://github.com/vspiliop/kafka-contract-test-consumer can be found here: https://vspiliop.github.io/kafka-contract-test-producer

Generate locally maven documentation site from scratch. Documentation is using Markdown for text formatting, latex for complex tables and plantuml for diagrams. All tables and diagrams are generated by code!

mvn clean compile site:site -o -Dmaven.test.skip

Generate and push maven documentation site to GitHub Pages. Remember to create and use a Github temp token. Execute from command line and provide GitHub username and temp token when asked.

mvnw clean compile site site:stage scm-publish:publish-scm -o -Dmaven.test.skip

Run local Jetty

Hosts the maven documentation site locally for development purposes.

mvn site:run -o

Generate Latex artifacts

mvn latex:latex

Generate Plantuml diagrams

mvn plantuml:generate

About

Kafka avro producer sharing Contract Tests' contracts with downstream consumers, while using Confluent Schema Registry

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published