{"id":17100773,"url":"https://github.com/frosenberg/go-cloud-stream","last_synced_at":"2026-04-13T01:12:32.205Z","repository":{"id":147278082,"uuid":"45040760","full_name":"frosenberg/go-cloud-stream","owner":"frosenberg","description":"Messaging microservices in Go","archived":false,"fork":false,"pushed_at":"2015-12-08T17:09:55.000Z","size":597,"stargazers_count":2,"open_issues_count":3,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-29T00:49:33.580Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/frosenberg.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}},"created_at":"2015-10-27T12:50:33.000Z","updated_at":"2017-08-24T05:49:05.000Z","dependencies_parsed_at":"2023-04-15T11:15:14.683Z","dependency_job_id":null,"html_url":"https://github.com/frosenberg/go-cloud-stream","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/frosenberg%2Fgo-cloud-stream","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frosenberg%2Fgo-cloud-stream/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frosenberg%2Fgo-cloud-stream/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frosenberg%2Fgo-cloud-stream/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/frosenberg","download_url":"https://codeload.github.com/frosenberg/go-cloud-stream/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245152738,"owners_count":20569399,"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":[],"created_at":"2024-10-14T15:14:38.575Z","updated_at":"2026-04-13T01:12:27.177Z","avatar_url":"https://github.com/frosenberg.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# go-cloud-stream\n\n[![Build Status](https://travis-ci.org/frosenberg/go-cloud-stream.svg?branch=master)](https://travis-ci.org/frosenberg/go-cloud-stream?branch=master)\n[![Coverage Status](https://coveralls.io/repos/frosenberg/go-cloud-stream/badge.svg?branch=master\u0026service=github)](https://coveralls.io/github/frosenberg/go-cloud-stream?branch=master)\n\nThe idea behind this work is to provide a simple way to build highly scalable messaging microservices.\nThese message microservices use different transports such as Kafka or Redis for communication.\nThe ideas is to deploy those microservices on Docker, Kubernetes or any other container system.\n\nThis work was inspired by the awesome [Spring Cloud Stream](https://github.com/spring-cloud/spring-cloud-stream)\nproject. However, streaming modules written in Java are pretty heavyweight, therefore we chose\nto implement the base framework in Go because it is lightweight and blazingly fast.\n\nOur key design goals are to be minimalist and lightweight but still compatible with the\n[Spring Cloud Stream Modules](https://github.com/spring-cloud/spring-cloud-stream-modules)\nin terms of the most important command line arguments so they can be used interchangeably.\nThis does not mean that go-cloud-stream supports all the options that Spring Cloud Stream supports.\nHowever, the key aspects of a modules are supported (e.g., queue and topic bindings, Redis and Kafka\nas transports, ...)\n\nCombined with [Spring Cloud Dataflow ](https://github.com/spring-cloud/spring-cloud-dataflow) or your\nown \"composition\" and deployment framework, this work can easily be used to build highly scalable\nmessaging microservices.\n\n### Build \u0026 Test\n\nThis project is intended to be used as \"library\" to build messaging microservices on top of either\nKafka or Redis as transport layer. However, Go does not supported shared libraries that can be dynamically\nlinked, we ship the code as is (without main) and compiles is as part of so-called \"Go Cloud Stream Modules\".\nSee some concrete examples here: https://github.com/frosenberg/go-cloud-stream-modules.\n\nIf you want to test and extend the code, you have start a Redis, Kafka and Zookeeper as they are needed\nin the tests.\n\n#### Redis Transport\n\nWe support both, Redis and Redis Sentinel mode, so start both of them with:\n\n```\n$ redis-server\n$ redis-sentinel etc/sentinel.conf\n```\n\n#### Kafka Transport\n\n```\n$ cd $KAFKA_HOME/bin/zookeeper-server-start.sh \u0026\n$ cd $KAFKA_HOME/bin/kafka-server-start.sh\n```\n\n#### Run the tests\n\n```\n$ go test -v ./...\n```\n\n### Build a go-cloud-stream module\n\nSee here for examples: https://github.com/frosenberg/go-cloud-stream-modules\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrosenberg%2Fgo-cloud-stream","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrosenberg%2Fgo-cloud-stream","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrosenberg%2Fgo-cloud-stream/lists"}