# harlow/go-micro-services

HTTP up front, Protobufs in the rear

Repository: https://github.com/harlow/go-micro-services
Canonical: https://ross.abutalabs.com/products/go-micro-services
Language: Go
License: MIT
License Family: permissive
Topics: golang, microservice, grpc, protobuf, go, jaeger, consul
Last push: 2026-03-06T21:12:32+00:00

## Health v2 (maintenance only)
Score: 64/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 70, release rhythm 35, longevity 100
- inputs: {"age_days": 4251, "days_push": 180, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1092, forks 164 (observed 2026-08-28T04:03:33.318599+00:00)

## What it is
A small, runnable Go microservices example demonstrating an HTTP frontend backed by internal gRPC service-to-service calls, with OpenTelemetry tracing to Jaeger. It includes Docker and non-Docker local workflows, health/readiness endpoints, and a hotel search demo spanning frontend, search, profile, geo, and rate services.

## Use cases
- learn how to build Go microservices with gRPC
- example of HTTP frontend with protobuf backend services
- set up distributed tracing with Jaeger and OpenTelemetry in Go
- see how to structure service boundaries in a microservices app
- run a multi-service stack locally with Docker Compose
- understand health and readiness probes across services
- reference for fan-out gRPC calls between Go services

## When to choose
- you want a minimal, runnable reference for Go microservices with gRPC
- you need a working example of OpenTelemetry tracing wired to Jaeger
- you are teaching or learning service-to-service communication patterns in Go
- you want a template showing HTTP up front and Protobufs internally

## When to avoid
- you need a production-ready microservices framework with service discovery and deployment tooling
- you want a full-featured hotel booking application rather than a demo
- your stack is not Go or you need polyglot service examples
- you need advanced features like message queues, auth, or autoscaling out of the box

## Facets
- artifact type: learning-resource
- maturity: active
- function: rpc, http-server, tracing, microservices, middleware
- domain: microservices, developer-tools, backend, apis, tutorials
- platform: go, cross-platform
- tags: grpc, protobuf, opentelemetry, jaeger, example-app, service-architecture, docker, linux, macos

## Member repositories
- harlow/go-micro-services (main) score 64

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:33.318599+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:49:02.431789+00:00, confidence not recorded.
  - readme: https://github.com/harlow/go-micro-services (fetched 2026-08-28T04:03:33.318599+00:00, sha 34e01d1f1abb)
- Data as of 2026-08-30T08:39:29.467469+00:00.
