Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. Go-micro

Go-micro

Apache-2.0Gov6.13.0

A Go framework for building distributed microservices with built-in RPC, service discovery, data modeling, and AI agent integration via MCP.

Visit WebsiteGitHubGitHub
23.1k stars2.4k forks0 contributors

What is Go-micro?

Go Micro is a framework for building distributed systems and microservices in Go. It provides essential abstractions like RPC communication, service discovery, load balancing, and data persistence, allowing developers to create scalable and maintainable service architectures. The framework also integrates with the Model Context Protocol (MCP) to automatically expose services as tools for AI agents.

Target Audience

Go developers and teams building distributed systems, microservices architectures, or applications that require seamless service communication, discovery, and persistence. It's also suitable for projects exploring AI agent integration via MCP.

Value Proposition

Developers choose Go Micro for its comprehensive feature set out-of-the-box, pluggable architecture that avoids vendor lock-in, and unique AI agent integration that turns services into callable tools. The framework simplifies distributed system complexities while offering flexibility through interchangeable components.

Overview

A Go agent harness and service framework

Use Cases

Best For

  • Building microservices architectures in Go with built-in service discovery and load balancing
  • Creating event-driven systems with synchronous RPC and asynchronous PubSub messaging
  • Developing applications that require typed data persistence with SQLite or Postgres backends
  • Integrating services with AI agents via the Model Context Protocol (MCP)
  • Running multiple services in a single binary as a modular monolith
  • Deploying microservices to Linux servers using systemd without Docker or Kubernetes

Not Ideal For

  • Simple HTTP APIs or monoliths that don't require distributed systems features like service discovery or load balancing
  • Teams with existing Kubernetes-based infrastructure who prefer container orchestration over systemd deployment
  • Projects where AI agent integration via MCP is irrelevant and would add unnecessary complexity
  • Developers who prefer lightweight, unopinionated libraries over a full-featured framework with many abstractions

Pros & Cons

Pros

Pluggable Architecture

Every distributed system abstraction is defined as a Go interface, allowing runtime-agnostic integration with any underlying technology, as emphasized in the README's philosophy of 'sane defaults with a pluggable architecture.'

Built-in AI Integration

Automatically exposes services as AI-callable tools via the Model Context Protocol (MCP), with an agent playground and tools registry available instantly, enabling agent-first workflows without extra setup.

Comprehensive Service Features

Includes out-of-the-box service discovery with multicast DNS, client-side load balancing, synchronous RPC, and asynchronous PubSub messaging, reducing the need for external dependencies in microservices development.

Data Model Layer

Provides a typed data persistence layer with CRUD operations, queries, and support for backends like SQLite and Postgres, accessible via service.Model() for integrated data handling alongside RPC.

Multi-Service Binaries

Allows running multiple services in a single process as a modular monolith, with isolated state per service, enabling gradual splitting into independent deployments when scaling needs arise.

Cons

Systemd-Centric Deployment

Deployment is optimized for Linux servers with systemd via SSH, with no built-in support for Docker or Kubernetes, which may not align with cloud-native or containerized environments favored by many teams.

Complexity Overhead

The framework's rich feature set, including service discovery and load balancing, introduces abstraction layers that can be overkill for simple microservices or projects that don't need distributed systems capabilities.

Reflection Performance Trade-offs

The README includes a 'Reflection Usage & Philosophy' document, indicating reliance on reflection for some operations, which might impact performance in high-throughput scenarios compared to more static approaches.

Limited Plugin Maturity

While pluggable, the ecosystem for plugins (e.g., alternative service discovery backends) is less extensive than in more established frameworks, potentially limiting integration options without custom development.

Frequently Asked Questions

Quick Stats

Stars23,058
Forks2,422
Contributors0
Open Issues4
Last commit1 day ago
CreatedSince 2015

Tags

#ai#distributed-systems#data-modeling#cli-tool#micro#ai-agents#model-context-protocol#golang#microservices#rpc#rpc-framework#service-discovery#go#mcp

Built With

G
Go

Links & Resources

Website

Included in

Go169.1kMicroservices14.2k
Auto-fetched 5 hours ago

Related Projects

GinGin

Gin is a high-performance HTTP web framework written in Go. It provides a Martini-like API but with significantly better performance—up to 40 times faster—thanks to httprouter. Gin is designed for building REST APIs, web applications, and microservices.

Stars89,186
Forks8,691
Last commit24 days ago
Go-zeroGo-zero

A cloud-native Go microservices framework with cli tool for productivity.

Stars33,313
Forks4,314
Last commit13 hours ago
go-kitgo-kit

A standard library for microservices.

Stars27,420
Forks2,437
Last commit2 years ago
KratosKratos

Your ultimate Go microservices framework for the cloud-native era.

Stars25,914
Forks4,180
Last commit20 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub