{"id":19454817,"url":"https://github.com/fancellu/kafkastreams","last_synced_at":"2026-02-06T08:04:23.156Z","repository":{"id":71450699,"uuid":"483194220","full_name":"fancellu/kafkastreams","owner":"fancellu","description":"Kafka streams Scala example, using docker","archived":false,"fork":false,"pushed_at":"2022-04-19T10:19:24.000Z","size":6,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-06T23:41:26.519Z","etag":null,"topics":["docker","docker-compose","kafka","kafka-streams","scala"],"latest_commit_sha":null,"homepage":"","language":"Scala","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/fancellu.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":"2022-04-19T10:11:55.000Z","updated_at":"2022-12-14T15:41:26.000Z","dependencies_parsed_at":"2023-09-09T12:00:15.453Z","dependency_job_id":null,"html_url":"https://github.com/fancellu/kafkastreams","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fancellu%2Fkafkastreams","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fancellu%2Fkafkastreams/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fancellu%2Fkafkastreams/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fancellu%2Fkafkastreams/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fancellu","download_url":"https://codeload.github.com/fancellu/kafkastreams/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246523845,"owners_count":20791444,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["docker","docker-compose","kafka","kafka-streams","scala"],"created_at":"2024-11-10T17:12:08.353Z","updated_at":"2026-02-06T08:04:23.129Z","avatar_url":"https://github.com/fancellu.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kafkastreams\n\nKafka streams Scala example, using docker\n\n## To start up Kafka\n\ncd docker\n\n`docker-compose up -d`\n\n## To view the Kafdrop UI against our docker kafka\n\nGoto http://localhost:9000/\n\nFor more info https://github.com/obsidiandynamics/kafdrop\n\n## Create a topic\n\n`docker exec broker kafka-topics --bootstrap-server broker:9092 --create --topic quickstart`\n\n## Write to topic from stdin\n\n`docker exec --interactive --tty broker kafka-console-producer --bootstrap-server broker:9092 --topic quickstart`\n\nctrl-d to end\n\n## Read from topic\n\n`docker exec --interactive --tty broker kafka-console-consumer --bootstrap-server broker:9092 --topic quickstart --from-beginning`\n\nctrl-c to stop reading, if you write messages from another terminal, you will see them arrive here\n\nYou could also use ProducerApp and ConsumerApp below with \"quickstart\" as first param\n\n## Extra topics for KafkaStreamsApp example\n\n`docker exec -it broker bash`\n\nThen paste in the following\n\n```\nkafka-topics --bootstrap-server localhost:9092 --topic orders-by-user --create\n\nkafka-topics --bootstrap-server localhost:9092 --topic discount-profiles-by-user --create --config \"cleanup.policy=compact\"\n\nkafka-topics --bootstrap-server localhost:9092 --topic discounts --create --config \"cleanup.policy=compact\"\n\nkafka-topics --bootstrap-server localhost:9092 --topic orders --create\n\nkafka-topics --bootstrap-server localhost:9092 --topic payments --create\n\nkafka-topics --bootstrap-server localhost:9092 --topic paid-orders --create\n\nkafka-topics --bootstrap-server localhost:9092 --topic paid-order-total --create --config \"cleanup.policy=compact\"\n\n\n```\n\nThen type\n\n`exit`\n\n## To send data to various KafkaStreamsApp topics\n\nYou can run `KafkaStreamsProducerApp` or do it manually yourself as below\n\n`docker exec -it broker kafka-console-producer --bootstrap-server broker:9092 --property parse.key=true --property key.separator=,  --topic discounts`\n\nprofile1,{\"profile\":\"profile1\",\"amount\":0.5 }\n\nprofile2,{\"profile\":\"profile2\",\"amount\":0.25 }\n\nprofile3,{\"profile\":\"profile3\",\"amount\":0.15 }\n\n`docker exec -it broker kafka-console-producer --bootstrap-server broker:9092 --property parse.key=true --property key.separator=,  --topic discount-profiles-by-user`\n\nDaniel,profile1\n\nRiccardo,profile2\n\n`docker exec -it broker kafka-console-producer --bootstrap-server broker:9092 --property parse.key=true --property key.separator=,  --topic orders-by-user`\n\nDaniel,{\"orderId\":\"order1\",\"user\":\"Daniel\",\"products\":[ \"iPhone 13\",\"MacBook Pro 15\"],\"amount\":4000.0 }\n\nRiccardo,{\"orderId\":\"order2\",\"user\":\"Riccardo\",\"products\":[\"iPhone 11\"],\"amount\":800.0}\n\n`docker exec -it broker kafka-console-producer --bootstrap-server broker:9092 --property parse.key=true --property key.separator=,  --topic payments`\n\norder1,{\"orderId\":\"order1\",\"status\":\"PAID\"}\n\norder2,{\"orderId\":\"order2\",\"status\":\"PENDING\"}\n\n`docker exec -it broker kafka-console-consumer --bootstrap-server broker:9092 --topic paid-orders --from-beginning`\n\nOr use ConsumerApp below\n\n## ComsumerApp and ProducerApp\n\nThese consume on paid-orders and produce to paid-orders, as basic examples of how to do this with the kafka non stream api\n\nYou can also give it another topic to target as its first param, e.g. quickstart \n\n## To stop Kafka\n\n`docker-compose down`\n\n## https://kafka.apache.org/documentation/streams/","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffancellu%2Fkafkastreams","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffancellu%2Fkafkastreams","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffancellu%2Fkafkastreams/lists"}