Go Pubsub

Open-source Go projects categorized as Pubsub | Edit details

Top 20 Go Pubsub Projects

  • GitHub repo dapr

    Dapr is a portable, event-driven, runtime for building distributed applications across cloud and edge.

    Project mention: Azure Service Bus | reddit.com/r/AZURE | 2021-12-02

    This sounds like something you can do with Dapr (https://dapr.io/) It's a microservice architecture that was developed by Microsoft i think and now open-source. It has build in support for communication between services. I don't know your architecture/landscape or the requirements, but maybe this could work for you. If not, yeah queues could work. Setup a listener on startup for the specific queue and you should be good. Keep scaling in mind, I think there was a limit to the number of listeners is possible on a queue (1 per partition or something)

  • GitHub repo Gizmo

    A Microservice Toolkit from The New York Times (by nytimes)

  • Nanos

    Run Linux Software Faster and Safer than Linux with Unikernels.

  • GitHub repo emitter-io

    High performance, distributed and low latency publish-subscribe platform.

  • GitHub repo liftbridge

    Lightweight, fault-tolerant message streams.

    Project mention: Processing billions of events in real time at Twitter | news.ycombinator.com | 2021-11-15

    This is basically an ad for GCP right?

    That said, it looks like Kafka is by far and away the way to handle persistent logs/events at scale. AFAIK a company here in Japan called LINE has all their messaging flowing through a large kafka cluster themselves.

    Wonder if anyone is running large NATS Jetstream[0]/Liftbridge[1] or Pulsar[2] (yahoo runs those) clusters. I guess Pulsar might be #2 in terms of adoption at large scale?

    [0]: https://docs.nats.io/jetstream/jetstream

    [1]: https://liftbridge.io/

    [2]: https://pulsar.apache.org/

  • GitHub repo Olric

    Distributed cache and in-memory key/value data store. It can be used both as an embedded Go library and as a language-independent service.

    Project mention: go-generics-cache: An in-memory key:value store/cache library for Go Generics | reddit.com/r/golang | 2021-11-16

    Just to follow up -- Olric ends up being closer to what I need.

  • GitHub repo beaver

    💨 A real time messaging system to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps.

    Project mention: GitHub - Clivern/Beaver: 💨 A real time messaging system to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps. | reddit.com/r/golang | 2021-10-16
  • GitHub repo centrifuge

    Real-time messaging library for Go with scalability in mind.

    Project mention: TCP or websockets for chat server | reddit.com/r/golang | 2021-11-25

    Hello, +1 to WebSockets. If you need to choose WS library – go with https://github.com/gorilla/websocket or https://github.com/gobwas/ws. You can also look at Centrifugo server (https://centrifugal.dev/, supports WebSocket, SockJS bidi transports, also EventSource, HTTP-streaming, GRPC unidirectional transports and many builtin features) or https://github.com/centrifugal/centrifuge Go library.

  • Scout APM

    Scout APM: A developer's best friend. Try free for 14-days. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.

  • GitHub repo mangos

    mangos is a pure Golang implementation of nanomsg's "Scalablilty Protocols"

    Project mention: Reconnect to a server | reddit.com/r/golang | 2021-03-03

    I'm writing a client application that uses https://github.com/nanomsg/mangos to connect to a server using the PUB/SUB protocol. I'm not sure how to handle server or network interrupts on the client. The application is just a for loop waiting for a message to arrive and the call a go routine to handle that message. Does anybody know a good example how to deal with network or server failures in GO? Or should the application just panic and let the OS create a new instance of the application? The client application will run as a daemon so users can not interact with it.

  • GitHub repo pubsub

    A simple pubsub package for go.

  • GitHub repo layotto

    A fast and efficient cloud native application runtime

    Project mention: Layotto: Combine Service Mesh,Multi-Runtime and FaaS into One Sidecar | news.ycombinator.com | 2021-08-11
  • GitHub repo kubemq-community

    KubeMQ is a Kubernetes native message queue broker

    Project mention: KubeMQ is a Kubernetes native message queue broker | reddit.com/r/golang | 2021-11-10
  • GitHub repo Bus

    🔊Minimalist message bus implementation for internal communication with zero-allocation magic on Emit

  • GitHub repo fpGo

    Monad, Functional Programming features for Golang

  • GitHub repo kiara

    Backend-agnostic, lightweight pub/sub library which makes it easy for Go applications to communicate with each other.

    Project mention: Kiara: Go equivalent of Phoenix PubSub | reddit.com/r/golang | 2021-02-13
  • GitHub repo pulse

    ☁EventBus on Portable Pub/Sub Components☄ (by silverswords)

    Project mention: Share My design and Code: a cloud event bus based on portable MQs. | reddit.com/r/golang | 2021-03-16

    https://github.com/silverswords/pulse Yeah, the cloud event bus reconstruction that lasted for two weeks (two months) finally worked again. Welcome, all the brothers to add Star [Celebrate].

  • GitHub repo styx

    Simple, high-performance event streaming broker (by dataptive)

    Project mention: ZooKeeper-free Kafka is out. First Demo | news.ycombinator.com | 2021-03-30

    Hi Alexander ! I'm a big fan of the work you do at vectorizedio and of your blog posts ! I strongly believe there's a need for much simpler event streaming and room for improvement performance-wise.

    I took a different path by divorcing from the Kafka protocol and experimenting with what I believe is a simpler to model approach to reliable event processing [1].

    [1] https://github.com/dataptive/styx/blob/master/docs/howto/rel...

  • GitHub repo varnish-towncrier

    Distribute cache invalidation requests to a fleet of varnish instances.

    Project mention: How to create a full page cache within a CMS? | reddit.com/r/golang | 2021-07-25

    Having said that, varnish is an excellent tool for these situations and it also works well if you decide to use a CDN later on. We use the combination of varnish (caching for dynamic content) and Cloudflare (caching for static assets) in a couple of production environments and using the relatively recent CDN-Cache-Control headers it's finally pretty easy to separate cache control headers of various different links in your proxy chain. Be aware that cache tagging requires an additional module (xkey vmod) which isn't always shipped with varnish packages. To help with cache invalidations you can also use tools like Varnish Broadcaster (commercial) or (shameless plug) varnish-towncrier which decouples cache invalidation calls from varnish and doesn't require your application to directly talk to each varnish instance.

  • GitHub repo kubemqctl

    Kubemqctl is a command line interface (CLI) for KubeMQ , Kubernetes Message Broker

    Project mention: Kubernetes-based development with Devspace | dev.to | 2021-10-15

    Our message queue is probably redismq, rabbitmq or kubemq, for which we also easily find helm charts.

  • GitHub repo Cluster

    Golang Package for System Clustering. (by Clivern)

    Project mention: Clivern/Cluster - Golang Package for System Clustering. | reddit.com/r/golang | 2021-06-20
  • GitHub repo pm

    Thin Cloud Pub/Sub client wrapper which lets you manage publishing / subscribing with pluggable middleware. (by k-yomo)

    Project mention: Introducing Cloud Pub/Sub manager | reddit.com/r/googlecloud | 2021-04-04

    Please check it out! https://github.com/k-yomo/pm

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2021-12-02.

Go Pubsub related posts


What are some of the best open-source Pubsub projects in Go? This list will help you:

Project Stars
1 dapr 15,886
2 Gizmo 3,563
3 emitter-io 3,109
4 liftbridge 2,173
5 Olric 2,021
6 beaver 1,284
7 centrifuge 547
8 mangos 459
9 pubsub 359
10 layotto 349
11 kubemq-community 345
12 Bus 231
13 fpGo 204
14 kiara 137
15 pulse 36
16 styx 29
17 varnish-towncrier 24
18 kubemqctl 24
19 Cluster 11
20 pm 5
Find remote jobs at our new job board 99remotejobs.com. There are 32 new remote jobs listed recently.
Are you hiring? Post a new remote job listing for free.
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives