Awesome Go

Distributed Systems

69 libraries in this category

go-zero

A web and rpc framework. It's born to ensure the stability of the busy sites with resilient design. Builtin goctl greatly improves the development productivity

33,379Distributed SystemsDistributed Systems
go-kit

Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc

27,419Distributed SystemsDistributed Systems
Kratos

A modular-designed and easy-to-use microservices framework in Go

25,972Distributed SystemsDistributed Systems
grpc-go

The Go language implementation of gRPC. HTTP/2 based RPC

23,092Distributed SystemsDistributed Systems
go-micro

A distributed systems development framework

23,086Distributed SystemsDistributed Systems
NATS

NATS is a simple, secure, and performant communications system for digital systems, services, and devices

20,876Distributed SystemsDistributed Systems
NATS

Lightweight, high performance messaging system for microservices, IoT, and cloud native systems.

15,715Distributed SystemsPackages that help with building Distributed Systems.
raft

Golang implementation of the Raft consensus protocol, by HashiCorp

9,146Distributed SystemsDistributed Systems
rpcx

Distributed pluggable RPC service framework like alibaba Dubbo

8,319Distributed SystemsDistributed Systems
Kitex

A high-performance and strong-extensibility Golang RPC framework that helps developers build microservices. If the performance and extensibility are the main concerns when you develop microservices, Kitex can be a good choice

8,052Distributed SystemsDistributed Systems
lura

Ultra performant API Gateway framework with middlewares

6,803Distributed SystemsDistributed Systems
torrent

BitTorrent client package

6,124Distributed SystemsDistributed Systems
dragonboat

A feature complete and high performance multi-group Raft library in Go

5,326Distributed SystemsDistributed Systems
evans

Evans: more expressive universal gRPC client

4,490Distributed SystemsDistributed Systems
emitter-io

High performance, distributed, secure and low latency publish-subscribe platform built with MQTT, Websockets and love

4,008Distributed SystemsDistributed Systems
gleam

Fast and scalable distributed map/reduce system written in pure Go and Luajit, combining Go's high concurrency with Luajit's high performance, runs standalone or distributed

3,567Distributed SystemsDistributed Systems
Dragonfly

Provide efficient, stable and secure file distribution and image acceleration based on p2p technology to be the best practice and standard solution in cloud native architectures

3,348Distributed SystemsDistributed Systems
glow

Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go

3,216Distributed SystemsDistributed Systems
sponge

A distributed development framework that integrates automatic code generation, gin and grpc frameworks, base development frameworks

2,870Distributed SystemsDistributed Systems
liftbridge

Lightweight, fault-tolerant message streams for NATS

2,804Distributed SystemsDistributed Systems
oras

CLI and library for OCI Artifacts in container registries

2,468Distributed SystemsDistributed Systems
go-eagle

A Go framework for the API or Microservice with handy scaffolding tools

2,427Distributed SystemsDistributed Systems
mochi mqtt

Fully spec compliant, embeddable high-performance MQTT v5/v3 broker for IoT, smarthome, and pubsub

1,943Distributed SystemsDistributed Systems
redis-lock

Simplified distributed locking implementation using Redis

1,769Distributed SystemsDistributed Systems
K8gb

A cloud native Kubernetes Global Balancer

1,333Distributed SystemsDistributed Systems
hprose

Very newbility RPC Library, support 25+ languages now

1,255Distributed SystemsDistributed Systems
trpc-go

The Go language implementation of tRPC, which is a pluggable, high-performance RPC framework

1,209Distributed SystemsDistributed Systems
go-doudou

A gossip protocol and OpenAPI 3.0 spec based decentralized microservice framework. Built-in go-doudou cli focusing on low-code and rapid dev can power up your productivity

1,171Distributed SystemsDistributed Systems
rain

BitTorrent client and library

1,147Distributed SystemsDistributed Systems
raft

Go implementation of the Raft consensus protocol, by CoreOS

1,141Distributed SystemsDistributed Systems
arpc

More effective network communication, support two-way-calling, notify, broadcast

1,092Distributed SystemsDistributed Systems
Temporal

Durable execution system for making code fault-tolerant and simple

985Distributed SystemsDistributed Systems
opentelemetry-go-auto-instrumentation

OpenTelemetry Compile-Time Instrumentation for Golang

903Distributed SystemsDistributed Systems
ringpop-go

Scalable, fault-tolerant application-layer sharding for Go applications.

828Distributed SystemsPackages that help with building Distributed Systems.
consistent

Consistent hashing with bounded loads

785Distributed SystemsDistributed Systems
go-health

Library for enabling asynchronous dependency health checks in your service.

748Distributed SystemsPackages that help with building Distributed Systems.
gorpc

Simple, fast and scalable RPC library for high load

710Distributed SystemsDistributed Systems
go-sundheit

A library built to provide support for defining async service health checks for golang services

560Distributed SystemsDistributed Systems
digota

grpc ecommerce microservice

522Distributed SystemsDistributed Systems
go-jump

Port of Google's "Jump" Consistent Hash function

388Distributed SystemsDistributed Systems
sleuth

Library for master-less p2p auto-discovery and RPC between HTTP services (using [ZeroMQ](https://github.com/zeromq/libzmq))

387Distributed SystemsDistributed Systems
jsonrpc

JSON-RPC 2.0 HTTP client implementation

375Distributed SystemsDistributed Systems
dht

BitTorrent Kademlia DHT implementation

362Distributed SystemsDistributed Systems
Tarmac

Framework for writing functions, microservices, or monoliths with WebAssembly

345Distributed SystemsDistributed Systems
jsonrpc

The jsonrpc package helps implement of JSON-RPC 2.0

193Distributed SystemsDistributed Systems
outboxer

Outboxer is a go library that implements the outbox pattern

166Distributed SystemsDistributed Systems
outbox

Lightweight library for the transactional outbox pattern in Go, not tied to any specific relational database or broker

135Distributed SystemsDistributed Systems
doublejump

A revamped Google's jump consistent hash

109Distributed SystemsDistributed Systems
Semaphore

A straightforward (micro) service orchestrator

96Distributed SystemsDistributed Systems
cmd-stream-go

High-performance distributed command pattern library for Go

94Distributed SystemsDistributed Systems
dot

distributed sync using operational transformation/OT

89Distributed SystemsDistributed Systems
capillaries

distributed batch data processing framework

74Distributed SystemsDistributed Systems
celeriac

Library for adding support for interacting and monitoring Celery workers, tasks and events in Go.

72Distributed SystemsPackages that help with building Distributed Systems.
flowgraph

flow-based programming package

67Distributed SystemsDistributed Systems
go-mysql-lock

MySQL based distributed lock

67Distributed SystemsDistributed Systems
drmaa

Job submission library for cluster schedulers based on the DRMAA standard

51Distributed SystemsDistributed Systems
go-pdu

A decentralized identity-based social network

50Distributed SystemsDistributed Systems
committer

A distributed transactions management system (2PC/3PC implementation)

45Distributed SystemsDistributed Systems
consistenthash

Consistent hashing with configurable replicas

35Distributed SystemsDistributed Systems
gmsec

A Go distributed systems development framework

27Distributed SystemsDistributed Systems
bedrock

Provides a minimal, modular and composable foundation for quickly developing services and more use case specific frameworks in Go

17Distributed SystemsDistributed Systems
dynatomic

A library for using DynamoDB as an atomic counter

17Distributed SystemsDistributed Systems
failured

adaptive accrual failure detector for distributed systems

15Distributed SystemsDistributed Systems
health

Health checker for Go services with Kubernetes probe support

12Distributed SystemsDistributed Systems
circuit

Circuit breaker with gradual recovery via probabilistic throttling

7Distributed SystemsDistributed Systems
lock

Distributed lock family with one Go interface and five backends (filelock, flock, Redis, Postgres, etcd) — fencing tokens, semaphore mode, and observability hooks across all backends

7Distributed SystemsDistributed Systems
servicepack

Framework for running multiple services concurrently in a single binary, locally or distributed across machines

3Distributed SystemsDistributed Systems
rpcplatform

Framework for microservices with service discovery, load balancing, and related features

2Distributed SystemsDistributed Systems
micro

A distributed systems runtime for the cloud and beyond

Distributed SystemsDistributed Systems