explaingit

nvkhuy/go-micro-stack

Analysis updated 2026-05-18

0GoAudience · developerComplexity · 5/5Setup · hard

TLDR

A reference Go microservices project showing how event driven services, a message queue, and full observability fit together.

Mindmap

mindmap
  root((repo))
    What it does
      Event driven microservices
      API gateway routing
      Full observability stack
    Tech stack
      Go
      Kafka
      PostgreSQL
      Grafana
    Use cases
      Learn microservice patterns
      Prototype an event driven system
      Study distributed tracing setup
    Audience
      Backend developers
      DevOps engineers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Study a working example of event driven microservices built in Go.

USE CASE 2

See how an API gateway, message broker, and database fit together in production.

USE CASE 3

Learn how to wire up Grafana, Loki, Tempo, and Prometheus for full observability.

USE CASE 4

Use as a starting template for a new Go microservices project with secrets management.

What is it built with?

GoKafkaPostgreSQLRedisGrafanaHashiCorp Vault

How does it compare?

nvkhuy/go-micro-stack42wim/fabio42wim/go-xmpp
Stars0
LanguageGoGoGo
Last pushed2018-02-042020-01-24
MaintenanceDormantDormant
Setup difficultyhardmoderatemoderate
Complexity5/53/53/5
Audiencedeveloperops devopsdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires Docker to run Kafka, Postgres, Redis, Vault, and the full observability stack together.

In plain English

go-micro-stack is a reference project showing how to build an event driven set of microservices in Go with the kind of infrastructure a real production system would need. Instead of one big application, it is split into small services that talk to each other indirectly through an event log rather than calling one another directly. Requests come in through KrakenD, which acts as the single front door, or API gateway, routing traffic to the right service and passing along tracing information so requests can be followed across the whole system. An order service receives requests to create orders, checks Redis to make sure the same request is not processed twice, saves the order to a PostgreSQL database, and then publishes an event about the new order to Apache Kafka, a message broker that other services can subscribe to. A separate notification service listens for those Kafka events and logs that a notification would be sent. Secrets like database passwords and API keys are kept out of the code and stored in HashiCorp Vault, a dedicated secrets manager, rather than sitting in configuration files. On the observability side, the project wires up the full LGTM stack: Grafana for dashboards, Loki for logs, Tempo for distributed traces, and Prometheus for metrics, all fed through the OpenTelemetry collector so every service's traces, metrics, and logs end up visualized in one place. Each piece of infrastructure uses persistent storage rather than memory alone: Kafka topics, the Postgres database, Redis's cache, and Vault's secret store are all written to disk or object storage so data survives a restart. The project includes a full local setup meant to be run end to end with the included configuration files for each component, from the API gateway down to the monitoring stack. This is a Go project intended as a hands-on example of production style microservice patterns rather than a single deployable product.

Copy-paste prompts

Prompt 1
Walk me through how a request flows from the API gateway to the order service in this project.
Prompt 2
Explain how Kafka events connect the order service and notification service here.
Prompt 3
Help me run this whole stack locally and view traces in Grafana.
Prompt 4
Show me how HashiCorp Vault is used to manage secrets in this project.

Frequently asked questions

What is go-micro-stack?

A reference Go microservices project showing how event driven services, a message queue, and full observability fit together.

What language is go-micro-stack written in?

Mainly Go. The stack also includes Go, Kafka, PostgreSQL.

How hard is go-micro-stack to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is go-micro-stack for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.