SaaSHub helps you find the best software and product alternatives Learn more →
Top 7 Go Scalability Projects
-
Centrifugo
Scalable real-time messaging server in a language-agnostic way. Self-hosted alternative to Pubnub, Pusher, Ably. Set up once and forever.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
centrifuge
Real-time messaging library for Go. The simplest way to add feature-rich and scalable WebSocket support to your application. The core of Centrifugo server.
-
coherence-go-client
The Coherence Go Client allows native Go applications to act as cache clients to a Coherence cluster using gRPC for the network transport.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
VictoriaMetrics CTO here.
The referred library is the official OpenTelemetry package for reading metrics in Go language [1] - more details are available at [2].
Note that we at VictoriaMetrics like the idea of unified observability standard like OpenTelemetry. The issue is in the current otel implementation. It is too bloated and very inefficient. This contradicts to our experience with observability cases, which need very optimized format for metrics' transfer in order to reduce costs on CPU and network traffic needed to transfer and process these metrics.
VictoriaMetrics continues investing in OpenTelemetry by providing integration docs [3] and improving the existing functionality for otel metrics' ingestion [4].
[1] https://github.com/open-telemetry/opentelemetry-proto-go
[2] https://github.com/VictoriaMetrics/VictoriaMetrics/pull/2570...
[3] https://docs.victoriametrics.com/guides/getting-started-with...
[4] https://github.com/VictoriaMetrics/VictoriaMetrics/issues/60...
Project mention: WebSockets vs. Server-Sent-Events vs. Long-Polling vs. WebRTC vs. WebTransport | news.ycombinator.com | 2024-03-20Hello, I am author of https://github.com/centrifugal/centrifugo. Our users can choose from WebSocket, EventSource, WebTransport (experimental stabilize in the future). WebRTC is out of scope as the main purpose is central server based real-time json/binary messaging, and WebRTC makes things much more complex since it shines for peer-to-peer and rich media communications.
What I'd like to add is that Centrifugo also supports HTTP-streaming – not mentioned by the OP – but this is a transport which has advantages over Eventsource - like possibility to send POST body on initial request from web browser (with SSE you can not), it supports binary, and with Readable Streams browser API it's widely supported by modern browsers.
Another thing I'd like to mention about Centrifugo - it supports bidirectional WebSocket fallbacks with EventSource and HTTP-streaming, and does this without sticky sessions requirement. I guess nobody else have this at this point. See https://centrifugal.dev/blog/2022/07/19/centrifugo-v4-releas.... Which solves one more practical concern. Sticky sessions is an optimization in Centrifugo case, not a requirement.
If you are interested in topic, we also have a post about WebSocket scalability - https://centrifugal.dev/blog/2020/11/12/scaling-websocket - it covers some design decisions made in Centrifugo.
Project mention: Centrifugo v5 - new major release of real-time messaging server written in Go | /r/golang | 2023-06-29BTW, Centrifugo is based on https://github.com/centrifugal/centrifuge Go library which may provide much more control and flexibility for Gophers than a standalone server and can be embedded to any Go app leveraging all Centrifugo client SDKs.
Go Scalability related posts
-
Centrifugo v5 - new major release of real-time messaging server written in Go
-
Centrifuge - multi-transport real-time messaging library with built-in scalability
-
Elixir or golang which wiil be good for large websocket connections.
-
Millions of Active WebSockets with Node.js
-
Best way for broadcast message un websocket
-
Do EKS or GKE use etcd?
-
KubeBrain: A High Performance Metadata System, to address Kubernetes 5k nodes limitation
-
A note from our sponsor - SaaSHub
www.saashub.com | 4 May 2024
Index
What are some of the best open-source Scalability projects in Go? This list will help you:
Project | Stars | |
---|---|---|
1 | VictoriaMetrics | 10,868 |
2 | Centrifugo | 7,924 |
3 | centrifuge | 982 |
4 | kubebrain | 738 |
5 | hera | 282 |
6 | hazelcast-go-client | 183 |
7 | coherence-go-client | 8 |
Sponsored