gitmyhub

go-micro

Go ★ 23k updated 1d ago

A Go agent harness and service framework

A Go framework that provides pluggable building blocks, service discovery, load balancing, messaging, and authentication, so you can build distributed microservices without solving those infrastructure problems from scratch.

GoRPCPub/Subsetup: hardcomplexity 4/5

Go Micro is a framework for building distributed systems and microservices in Go. Microservices is an architectural style where a large application is broken into many small, independently running services that communicate over a network. Go Micro provides the toolkit that makes building and connecting those services practical.

The problem it solves: when you split an application into many services, you immediately face a set of complex problems — how do services find each other, how do they communicate reliably, how do you handle load balancing, authentication, and configuration across all of them? Go Micro provides built-in, pluggable answers to all of these questions so developers do not need to solve them from scratch.

How it works: you define a service, register request handlers on it, and run it. Go Micro handles service discovery (automatically making your service findable by others using multicast DNS), load balancing (distributing calls across multiple instances), message encoding (converting data between formats automatically), and asynchronous messaging (letting services broadcast events to each other). Everything is designed to be swappable — you can replace the default discovery, storage, or messaging systems with different backends.

You would use Go Micro when building a Go backend that needs to run as multiple independently deployable services, or when starting with a single app that you want to be able to split apart later.

The tech stack is Go, with support for RPC communication, pub/sub messaging, and pluggable backends for storage and service discovery.

Where it fits