# golang/groupcache

groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases.

Repository: https://github.com/golang/groupcache
Canonical: https://ross.abutalabs.com/products/groupcache
Language: Go
License: Apache-2.0
License Family: permissive
Last push: 2024-11-29T21:07:26+00:00

## Health v2 (maintenance only)
Score: 32/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 35, longevity 100
- inputs: {"age_days": 4790, "days_push": 642, "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 13332, forks 1392 (observed 2026-08-28T04:11:03.167811+00:00)

## What it is
groupcache is a Go distributed caching and cache-filling library intended as a replacement for a pool of memcached nodes. It embeds both client and server functionality, coordinating cache fills across peers so only one load populates the cache and deduplicates concurrent lookups.

## Use cases
- replace memcached with an embedded distributed cache in Go services
- prevent thundering herd on cache misses when loading from a database
- cache immutable values across a replicated set of processes
- mirror super-hot keys to multiple processes to avoid hot spotting
- shard cache keys across peers via consistent hashing

## When to choose
- your cached values are immutable (no expiration or eviction needed)
- you want a distributed cache without deploying separate cache servers
- you need coordinated, deduplicated cache fills across many processes
- you are building Go services with read-heavy, rarely-changing data

## When to avoid
- you need TTLs, explicit evictions, CAS, or Increment/Decrement
- your cached values change over time and need versioning
- you are not using Go
- you need a standalone cache server shared by heterogeneous clients

## Facets
- artifact type: library
- maturity: maintenance
- function: caching, rpc, concurrency
- domain: databases, backend, microservices, performance
- platform: go, cross-platform
- tags: distributed-cache, cache-filling, memcached-replacement, consistent-hashing, singleflight

## Member repositories
- golang/groupcache (main) score 32

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:11:03.167811+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-29T17:13:21.334317+00:00, confidence not recorded.
  - readme: https://github.com/golang/groupcache (fetched 2026-08-28T04:11:03.167811+00:00, sha b61495e11dc5)
- Data as of 2026-08-30T08:39:29.467469+00:00.
