{"adoption": {"forks": 164, "observed_at": "2026-08-28T04:03:33.318599+00:00", "stars": 1092}, "canonical_url": "https://ross.abutalabs.com/products/go-micro-services", "card": {"archived": false, "artifact_type": "learning-resource", "description": "HTTP up front, Protobufs in the rear", "domain": ["microservices", "developer-tools", "backend", "apis", "tutorials"], "enriched": true, "function": ["rpc", "http-server", "tracing", "microservices", "middleware"], "health_score": 62, "homepage": null, "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["harlow/go-micro-services"], "name": "harlow/go-micro-services", "platform": ["go", "cross-platform"], "pushed_at": "2026-03-06T21:12:32+00:00", "repo": "harlow/go-micro-services", "stars": 1092, "tags": ["grpc", "protobuf", "opentelemetry", "jaeger", "example-app", "service-architecture", "docker", "linux", "macos"], "topics": ["golang", "microservice", "grpc", "protobuf", "go", "jaeger", "consul"], "urls": [], "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"], "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.", "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"], "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"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/go-micro-services", "repo": "harlow/go-micro-services", "role": "main", "score": 64}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:33.318599+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:49:02.431789+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34e01d1f1abb03c0ceaec622dd2802e613e4666f686d2c6dc37427244a024ff2", "fetched_at": "2026-08-28T04:03:33.318599+00:00", "kind": "readme", "missing": false, "url": "https://github.com/harlow/go-micro-services"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:33.318599+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:49:02.431789+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34e01d1f1abb03c0ceaec622dd2802e613e4666f686d2c6dc37427244a024ff2", "fetched_at": "2026-08-28T04:03:33.318599+00:00", "kind": "readme", "missing": false, "url": "https://github.com/harlow/go-micro-services"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:49:02.431789+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34e01d1f1abb03c0ceaec622dd2802e613e4666f686d2c6dc37427244a024ff2", "fetched_at": "2026-08-28T04:03:33.318599+00:00", "kind": "readme", "missing": false, "url": "https://github.com/harlow/go-micro-services"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:33.318599+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:33.318599+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:33.318599+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:49:02.431789+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34e01d1f1abb03c0ceaec622dd2802e613e4666f686d2c6dc37427244a024ff2", "fetched_at": "2026-08-28T04:03:33.318599+00:00", "kind": "readme", "missing": false, "url": "https://github.com/harlow/go-micro-services"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:33.318599+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:33.318599+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:49:02.431789+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34e01d1f1abb03c0ceaec622dd2802e613e4666f686d2c6dc37427244a024ff2", "fetched_at": "2026-08-28T04:03:33.318599+00:00", "kind": "readme", "missing": false, "url": "https://github.com/harlow/go-micro-services"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:33.318599+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:33.318599+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:33.318599+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:49:02.431789+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34e01d1f1abb03c0ceaec622dd2802e613e4666f686d2c6dc37427244a024ff2", "fetched_at": "2026-08-28T04:03:33.318599+00:00", "kind": "readme", "missing": false, "url": "https://github.com/harlow/go-micro-services"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:33.318599+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:33.318599+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:49:02.431789+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34e01d1f1abb03c0ceaec622dd2802e613e4666f686d2c6dc37427244a024ff2", "fetched_at": "2026-08-28T04:03:33.318599+00:00", "kind": "readme", "missing": false, "url": "https://github.com/harlow/go-micro-services"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:49:02.431789+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34e01d1f1abb03c0ceaec622dd2802e613e4666f686d2c6dc37427244a024ff2", "fetched_at": "2026-08-28T04:03:33.318599+00:00", "kind": "readme", "missing": false, "url": "https://github.com/harlow/go-micro-services"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:49:02.431789+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34e01d1f1abb03c0ceaec622dd2802e613e4666f686d2c6dc37427244a024ff2", "fetched_at": "2026-08-28T04:03:33.318599+00:00", "kind": "readme", "missing": false, "url": "https://github.com/harlow/go-micro-services"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:49:02.431789+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "34e01d1f1abb03c0ceaec622dd2802e613e4666f686d2c6dc37427244a024ff2", "fetched_at": "2026-08-28T04:03:33.318599+00:00", "kind": "readme", "missing": false, "url": "https://github.com/harlow/go-micro-services"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 70, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4251, "days_push": 180, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 64, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}