{"repo":"snyk/skemium","free":true,"listed":false,"github":"https://github.com/snyk/skemium","clone":"git clone https://github.com/snyk/skemium.git","description":"Generate and Compare Debezium CDC (Chance Data Capture) Avro Schema, directly from your Database.","language":"Java","stars":29,"topics":["comparison","database","debezium","kafka","postgres","schema","schema-registry","tool"],"license":"Apache-2.0","category":"databases-storage","readme_excerpt":"Skemium Generate and Compare [Debezium] Change Data Capture ([CDC]) [Avro] Schema. Leveraging [Debezium] and [Schema Registry] own codebases, each Table of a Database is mapped to 3 components: Key [Avro] schema: describes the PRIMARY KEY of the Table - NULL if not set Value [Avro] schema: describes each Row of the Table Envelope [Avro] schema: wrapper for the Value , used by Debezium to realize [CDC] when Producing to a Topic [Debezium CDC Source Connector] uses the Key and the Envelope schemas when producing to a Topic: the former is used for the [Message Key ][Kafka Message Key], the latter for the Message Payload . Skemium leverages those schemas to compare between evolutions of the originating Database Schema, and identifies compatibility issues executing the comparison logic implemented by [Schema Registry]. If you make changes to your Database Schema, and want to know if it's going to break your Debezium CDC production, skemium is the tool for you. Background In our experience, the way [Debezium] works can catch users off guard in 2 major ways: 1. Making changes to the source Database Schema in ways that break [Schema Compatibility] 2. Non-zero amount of time between making changes to the source Database Schema, and that change being captured by Debezium and published to [Schema Registry] Avoiding the first is made much harder by the second! Delayed schema publishing There is sometimes confusion between “making a DB Schema” vs “making a [Schema Registry] Schema” change","default_branch":null,"files":null,"tree":[],"storefront":"/r/snyk","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/snyk/skemium/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}