{"adoption": {"forks": 265, "observed_at": "2026-08-28T04:08:32.250898+00:00", "stars": 4009}, "canonical_url": "https://ross.abutalabs.com/products/pgcat", "card": {"archived": false, "artifact_type": "service", "description": "PostgreSQL pooler with sharding, load balancing and failover support.", "domain": ["databases", "backend", "infrastructure-as-code"], "enriched": true, "function": ["database", "proxy", "load-testing", "monitoring", "security"], "health_score": 34, "homepage": null, "language": "Rust", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["postgresml/pgcat"], "name": "postgresml/pgcat", "platform": ["rust", "self-hosted"], "pushed_at": "2025-02-27T21:51:01+00:00", "repo": "postgresml/pgcat", "stars": 4009, "tags": ["postgresql", "pooler", "pgbouncer-alternative", "sharding", "failover", "load-balancing", "connection-pooling", "tokio", "devops", "linux", "macos", "docker"], "topics": ["pooler", "postgresql", "pooling", "rust"], "urls": [], "use_cases": ["pool postgres connections for a high-traffic app", "load balance read queries across postgres replicas", "automatically fail over when a postgres replica goes down", "shard postgres queries across multiple databases", "mirror production traffic to a staging postgres server", "replace pgbouncer with a multi-threaded pooler", "monitor postgres pool statistics with prometheus"], "what_it_is": "PgCat is a PostgreSQL connection pooler and proxy written in Rust, similar to PgBouncer, with support for sharding, load balancing, failover, and query mirroring. It is multi-threaded, production-tested at high query volumes, and exposes statistics via an admin database and Prometheus.", "when_to_avoid": ["you need only the simplest pooling setup and already run PgBouncer happily", "you rely on experimental features like automatic sharding in critical production paths", "you don't run PostgreSQL"], "when_to_choose": ["you need transaction or session pooling beyond what PgBouncer offers", "you want automatic load balancing and failover across replicas", "you need query sharding or traffic mirroring", "you run Postgres at high query-per-second volumes on multicore machines"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pgcat", "repo": "postgresml/pgcat", "role": "main", "score": 38}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.250898+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:24:02.356348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b3abfd4fd3a0980445013193b1d9d6012f0079023e1a938c7a5b8a37e04667d8", "fetched_at": "2026-08-28T04:08:32.250898+00:00", "kind": "readme", "missing": false, "url": "https://github.com/postgresml/pgcat"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.250898+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:24:02.356348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b3abfd4fd3a0980445013193b1d9d6012f0079023e1a938c7a5b8a37e04667d8", "fetched_at": "2026-08-28T04:08:32.250898+00:00", "kind": "readme", "missing": false, "url": "https://github.com/postgresml/pgcat"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:24:02.356348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b3abfd4fd3a0980445013193b1d9d6012f0079023e1a938c7a5b8a37e04667d8", "fetched_at": "2026-08-28T04:08:32.250898+00:00", "kind": "readme", "missing": false, "url": "https://github.com/postgresml/pgcat"}], "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:08:32.250898+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.250898+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.250898+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:24:02.356348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b3abfd4fd3a0980445013193b1d9d6012f0079023e1a938c7a5b8a37e04667d8", "fetched_at": "2026-08-28T04:08:32.250898+00:00", "kind": "readme", "missing": false, "url": "https://github.com/postgresml/pgcat"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.250898+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.250898+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:24:02.356348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b3abfd4fd3a0980445013193b1d9d6012f0079023e1a938c7a5b8a37e04667d8", "fetched_at": "2026-08-28T04:08:32.250898+00:00", "kind": "readme", "missing": false, "url": "https://github.com/postgresml/pgcat"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.250898+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.250898+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.250898+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:24:02.356348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b3abfd4fd3a0980445013193b1d9d6012f0079023e1a938c7a5b8a37e04667d8", "fetched_at": "2026-08-28T04:08:32.250898+00:00", "kind": "readme", "missing": false, "url": "https://github.com/postgresml/pgcat"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.250898+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.250898+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:24:02.356348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b3abfd4fd3a0980445013193b1d9d6012f0079023e1a938c7a5b8a37e04667d8", "fetched_at": "2026-08-28T04:08:32.250898+00:00", "kind": "readme", "missing": false, "url": "https://github.com/postgresml/pgcat"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:24:02.356348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b3abfd4fd3a0980445013193b1d9d6012f0079023e1a938c7a5b8a37e04667d8", "fetched_at": "2026-08-28T04:08:32.250898+00:00", "kind": "readme", "missing": false, "url": "https://github.com/postgresml/pgcat"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:24:02.356348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b3abfd4fd3a0980445013193b1d9d6012f0079023e1a938c7a5b8a37e04667d8", "fetched_at": "2026-08-28T04:08:32.250898+00:00", "kind": "readme", "missing": false, "url": "https://github.com/postgresml/pgcat"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:24:02.356348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b3abfd4fd3a0980445013193b1d9d6012f0079023e1a938c7a5b8a37e04667d8", "fetched_at": "2026-08-28T04:08:32.250898+00:00", "kind": "readme", "missing": false, "url": "https://github.com/postgresml/pgcat"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 8, "longevity": 100, "rhythm": 40}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1677, "days_push": 552, "days_rel": 660, "gap_med": 4.0, "n_releases_24m": 5}, "score": 38, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}