{"id":22152145,"url":"https://github.com/findinpath/kafka-streams-generic-avro","last_synced_at":"2026-07-16T03:31:36.886Z","repository":{"id":112790973,"uuid":"229278237","full_name":"findinpath/kafka-streams-generic-avro","owner":"findinpath","description":null,"archived":false,"fork":false,"pushed_at":"2023-09-29T22:20:44.000Z","size":16,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-20T08:32:16.012Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.findinpath.com/kafka-streams-generic-avro/","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/findinpath.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":"2019-12-20T14:19:48.000Z","updated_at":"2024-03-19T18:20:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"daf8cc82-e4e2-45e4-8659-a3b006c373c8","html_url":"https://github.com/findinpath/kafka-streams-generic-avro","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/findinpath/kafka-streams-generic-avro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/findinpath%2Fkafka-streams-generic-avro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/findinpath%2Fkafka-streams-generic-avro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/findinpath%2Fkafka-streams-generic-avro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/findinpath%2Fkafka-streams-generic-avro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/findinpath","download_url":"https://codeload.github.com/findinpath/kafka-streams-generic-avro/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/findinpath%2Fkafka-streams-generic-avro/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35529592,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-16T02:00:06.687Z","response_time":83,"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":[],"created_at":"2024-12-02T00:47:24.622Z","updated_at":"2026-07-16T03:31:36.864Z","avatar_url":"https://github.com/findinpath.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Processing of generic Apache Kafka AVRO messages with kafka-streams\n=======================================================================================\n\nThis is a very simple showcase on how to process in a kafka-streams\ntopology [AVRO](https://avro.apache.org/) messages of different types. \n\nRelated to the blog post \n \nhttps://www.confluent.io/blog/put-several-event-types-kafka-topic/ \n \nthis proof of concept project demonstrates how to consume via\nkafka-streams several types of events from the [Apache Kafka](https://kafka.apache.org/) \ninput topic.\n\nThe project provides two implementations of kafka-streams topologies:\n\n- GenericRecordTopology: consumes instances of `GenericRecord` deserialized objects\n- SpecificRecordTopology: consumes instances of `SpecificRecord` deserialized objects\n \n \n \n## Testcontainers\nThe [testcontainers](https://www.testcontainers.org/) library already\noffers a [Kafka](https://www.testcontainers.org/modules/kafka/) module\nfor interacting with [Apache Kafka](https://kafka.apache.org/), but\nit there is, at the moment, not an testcontainer module for the whole\nConfluent environment (Confluent Schema Registry container support is\nmissing from the module previously mentioned).\nAs a side note, the containers used do not use the default ports exposed\nby default in the artifacts (e.g. : Apache Zookeeper 2181, Apache Kafka 9092,\nConfluent Schema Registry 8081), but rather free ports available on the\ntest machine avoiding therefor possible conflicts with already running\nservices on the test machine. \n\nThis project provides a functional prototype on how to setup the whole\nConfluent environment (including Confluent Schema Registry) via testcontainers.\n \n \nFor the test environment the following containers will be started:\n \n- Apache Zookeeper\n- Apache Kafka\n- Confluent Schema Registry\n\n\n## Demo\n\nThe test demo will start verify whether a message serialized in AVRO \nformat can be successfully serialized and sent over Apache Kafka\nin order to subsequently be deserialized and read by a consumer.\n\n\nUse \n\n```bash\nmvn clean install\n```\n\nfor trying out the project.\n\nThe file [testcontainers.properties](src/test/resources/testcontainers.properties) can be\nused for overriding the default [docker](https://www.docker.com/) images used for the containers needed in setting \nup the Confluent test environment.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffindinpath%2Fkafka-streams-generic-avro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffindinpath%2Fkafka-streams-generic-avro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffindinpath%2Fkafka-streams-generic-avro/lists"}