# go-kit/kit

A standard library for microservices.

Repository: https://github.com/go-kit/kit
Canonical: https://ross.abutalabs.com/products/kit
Homepage: https://gokit.io
Language: Go
License: MIT
License Family: permissive
Topics: go, microservices, golang, metallica
Last push: 2024-07-19T01:40:06+00:00

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

## Adoption (not part of the score)
Stars 27422, forks 2440 (observed 2026-08-28T04:11:47.724411+00:00)

## What it is
Go kit is a collection of Go packages that provide a comprehensive toolkit for building robust, maintainable microservices (or elegant monoliths). It solves common distributed systems and application architecture concerns like RPC safety, observability, and transport-agnostic endpoints so developers can focus on business logic.

## Use cases
- build microservices in Go
- structure Go services with clean architecture
- add logging, metrics, and tracing to Go services
- implement RPC services with pluggable transports and serialization
- add circuit breaking and rate limiting to service endpoints
- adopt Go for distributed systems in an organization

## When to choose
- you are building microservices in Go and want mature, production-validated patterns
- you need transport- and serialization-agnostic service endpoints
- you want observability (logging, metrics, tracing) built into your service architecture
- you need to integrate with existing infrastructure like Kubernetes, Docker, or various discovery systems

## When to avoid
- you need messaging patterns beyond RPC such as pub/sub, CQRS, or event streaming
- you want an opinionated full microservice platform rather than a composable toolkit
- you are building simple monoliths or small services where the toolkit's abstractions add unnecessary overhead
- you prefer newer Go microservice frameworks with more active development

## Facets
- artifact type: library
- maturity: maintenance
- function: rpc, middleware, logging, tracing, serialization, http-server, monitoring
- domain: microservices, backend, developer-tools, apis
- platform: go, windows, cross-platform
- tags: microservice-toolkit, service-oriented-architecture, endpoint-pattern, transport-agnostic, observability, load-balancing, rate-limiting, circuit-breaker, linux, macos, docker, kubernetes

## Member repositories
- go-kit/kit (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:11:47.724411+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-29T16:54:32.449818+00:00, confidence not recorded.
  - readme: https://github.com/go-kit/kit (fetched 2026-08-28T04:11:47.724411+00:00, sha 49e8640a200a)
  - homepage: https://gokit.io (fetched 2026-08-29T07:51:35.374710+00:00, sha 4f2bd709492e)
  - site_page: https://gokit.io/faq (fetched 2026-08-29T07:51:35.384540+00:00, sha 6f7e132cfc72)
- Data as of 2026-08-30T08:39:29.467469+00:00.
