Distributed Systems - Awesome Go
Packages that help with building Distributed Systems.
- arpc - More effective network communication, support two-way-calling, notify, broadcast.
- bedrock - Provides a minimal, modular and composable foundation for quickly developing services and more use case specific frameworks in Go.
- capillaries - distributed batch data processing framework.
- celeriac - Library for adding support for interacting and monitoring Celery workers, tasks and events in Go.
- consistent - Consistent hashing with bounded loads.
- consistenthash - Consistent hashing with configurable replicas.
- dht - BitTorrent Kademlia DHT implementation.
- digota - grpc ecommerce microservice.
- dot - distributed sync using operational transformation/OT.
- doublejump - A revamped Google's jump consistent hash.
- dragonboat - A feature complete and high performance multi-group Raft library in Go.
- 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.
- drmaa - Job submission library for cluster schedulers based on the DRMAA standard.
- dynamolock - DynamoDB-backed distributed locking implementation.
- dynatomic - A library for using DynamoDB as an atomic counter.
- emitter-io - High performance, distributed, secure and low latency publish-subscribe platform built with MQTT, Websockets and love.
- evans - Evans: more expressive universal gRPC client.
- failured - adaptive accrual failure detector for distributed systems.
- flowgraph - flow-based programming package.
- 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.
- glow - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go.
- gmsec - A Go distributed systems development framework.
- 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.
- go-health - Library for enabling asynchronous dependency health checks in your service.
- go-jump - Port of Google's "Jump" Consistent Hash function.
- go-kit - Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc.
- go-micro - A distributed systems development framework.
- go-mysql-lock - MySQL based distributed lock.
- go-pdu - A decentralized identity-based social network.
- go-sundheit - A library built to provide support for defining async service health checks for golang services.
- 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.
- gorpc - Simple, fast and scalable RPC library for high load.
- grpc-go - The Go language implementation of gRPC. HTTP/2 based RPC.
- hprose - Very newbility RPC Library, support 25+ languages now.
- jsonrpc - The jsonrpc package helps implement of JSON-RPC 2.0.
- jsonrpc - JSON-RPC 2.0 HTTP client implementation.
- K8gb - A cloud native Kubernetes Global Balancer.
- 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.
- Kratos - A modular-designed and easy-to-use microservices framework in Go.
- liftbridge - Lightweight, fault-tolerant message streams for NATS.
- lura - Ultra performant API Gateway framework with middlewares.
- micro - A distributed systems runtime for the cloud and beyond.
- mochi mqtt - Fully spec compliant, embeddable high-performance MQTT v5/v3 broker for IoT, smarthome, and pubsub.
- NATS - NATS is a simple, secure, and performant communications system for digital systems, services, and devices.
- outboxer - Outboxer is a go library that implements the outbox pattern.
- pglock - PostgreSQL-backed distributed locking implementation.
- pjrpc - Golang JSON-RPC Server-Client with Protobuf spec.
- raft - Golang implementation of the Raft consensus protocol, by HashiCorp.
- raft - Go implementation of the Raft consensus protocol, by CoreOS.
- rain - BitTorrent client and library.
- redis-lock - Simplified distributed locking implementation using Redis.
- resgate - Realtime API Gateway for building REST, real time, and RPC APIs, where all clients are synchronized seamlessly.
- ringpop-go - Scalable, fault-tolerant application-layer sharding for Go applications.
- rpcx - Distributed pluggable RPC service framework like alibaba Dubbo.
- Semaphore - A straightforward (micro) service orchestrator.
- sleuth - Library for master-less p2p auto-discovery and RPC between HTTP services (using ZeroMQ).
- sponge - A distributed development framework that integrates automatic code generation, gin and grpc frameworks, base development frameworks.
- Tarmac - Framework for writing functions, microservices, or monoliths with WebAssembly
- Temporal - Durable execution system for making code fault-tolerant and simple.
- torrent - BitTorrent client package.
- trpc-go - The Go language implementation of tRPC, which is a pluggable, high-performance RPC framework.