{"id":39393718,"url":"https://github.com/javajon/cdc-with-k8s","last_synced_at":"2026-01-18T03:14:39.441Z","repository":{"id":42754180,"uuid":"279453652","full_name":"javajon/cdc-with-k8s","owner":"javajon","description":"A complete tutorial on how to use the code can be found in my Katacoda scenario here: https://katacoda.com/javajon/courses/kubernetes-pipelines/cdc-with-k8s","archived":false,"fork":false,"pushed_at":"2025-03-11T19:05:23.000Z","size":51785,"stargazers_count":6,"open_issues_count":1,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-11T20:22:23.928Z","etag":null,"topics":["cdc","h2","java","kubernetes","pact","springboot","testing"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/javajon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-14T01:46:24.000Z","updated_at":"2025-03-11T19:05:26.000Z","dependencies_parsed_at":"2025-02-26T02:26:58.791Z","dependency_job_id":"e464495e-80ed-496d-bffa-643e888ee44a","html_url":"https://github.com/javajon/cdc-with-k8s","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/javajon/cdc-with-k8s","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javajon%2Fcdc-with-k8s","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javajon%2Fcdc-with-k8s/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javajon%2Fcdc-with-k8s/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javajon%2Fcdc-with-k8s/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/javajon","download_url":"https://codeload.github.com/javajon/cdc-with-k8s/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javajon%2Fcdc-with-k8s/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28528034,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cdc","h2","java","kubernetes","pact","springboot","testing"],"created_at":"2026-01-18T03:14:38.920Z","updated_at":"2026-01-18T03:14:39.436Z","avatar_url":"https://github.com/javajon.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Consumer-driven Contracts with Kubernetes\n\n## Learn how to use the Pact Foundation's framework for CDC testing\n\nThis project contains the source code for demonstrating consumer-driven contact testing using [Pact](https://docs.pact.io/). The application aggregates population and COVID-19 datasources and presents data at an API gateway. The entire application and Pact testing runs on Kubernetes. Here is a networking representation of the Pod relationships.\n\n\u003cimg src=\"/docs/app-arch.png\" alt=\"Demonstration application architecture\"/\u003e\n\nThere are 6 directories for the following purposes:\n\n| Directory Name  | Purpose                                                |\n|-----------------|--------------------------------------------------------|\n| aggregator      | Public API gateway, aggregates data from _world-pop_ and _covid-19_ microservices. This is the API you will test with Pact. |\n| cluster         | A collection of Kubernetes YAML-based manifests that define how each microservice, Pod, Deployment, and Service will run on your Kubernetes cluster. |\n| covid-19        | A microservice that serves the COVID-19 data, updated daily, for each country on our blue marble. |\n| h2-seeder       | A small container that runs as an _initContainer_ that seeds the H2 database Pod when it starts. The data is the human population for all the countries and major cities on our blue marble. |\n| pact            | Here is one consumer. The Node.js code is independent of the Kubernetes cluster and by running a Pact test it creates a Pact contract |\n| world-pop       | A microservice that serves the world population data in the H2 database. |\n\nIn summary, the aggregator serves data combining the daily COVID-19 metrics with the world population.\n\nFor a complete tutorial on how this all works follow this interactive O'Reilly Media lab: [Consumer-driven Contracts with Kubernetes](https://www.dijure.com/categories/testing/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavajon%2Fcdc-with-k8s","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjavajon%2Fcdc-with-k8s","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavajon%2Fcdc-with-k8s/lists"}