{"adoption": {"forks": 299, "observed_at": "2026-08-28T04:07:38.940986+00:00", "stars": 3032}, "canonical_url": "https://ross.abutalabs.com/products/franz-go", "card": {"archived": false, "artifact_type": "library", "description": "franz-go is a feature complete, pure Go library for Kafka from 0.8.0 through 4.2+. Producing, consuming, transacting, administrating, etc.", "domain": ["microservices", "backend", "developer-tools", "apis"], "enriched": true, "function": ["message-queue", "serialization", "auth", "cryptography", "monitoring", "logging"], "health_score": 79, "homepage": null, "language": "Go", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "active", "member_repos": ["twmb/franz-go"], "name": "twmb/franz-go", "platform": ["go", "cross-platform", "windows", "cloud"], "pushed_at": "2026-08-20T02:46:16+00:00", "repo": "twmb/franz-go", "stars": 3032, "tags": ["kafka", "kafka-client", "event-streaming", "redpanda", "producer-consumer", "transactions", "exactly-once-semantics", "schema-registry", "pure-go", "messaging", "linux", "macos", "docker", "kubernetes"], "topics": ["kafka", "go", "golang", "kafka-client", "client", "redpanda"], "urls": [], "use_cases": ["produce and consume Kafka messages from a Go application", "build exactly-once transactional event pipelines in Go", "administer Kafka clusters programmatically", "consume Kafka topics with consumer groups and rebalancing", "connect Go services to Redpanda or Amazon MSK", "encode and decode messages with a schema registry client", "stream events with compression and SASL/TLS authentication"], "what_it_is": "franz-go is a feature-complete, pure Go Apache Kafka client library supporting Kafka 0.8.0 through 4.2+, including producing, consuming, transactions, and administration. It works with any Kafka-compatible broker such as Redpanda, Confluent Platform, Amazon MSK, and Azure Event Hubs.", "when_to_avoid": ["your project is not written in Go", "you need a simple high-level wrapper rather than a full-featured client", "you rely on the next-generation group protocol without opting in explicitly", "you need a client for a non-Kafka message broker"], "when_to_choose": ["you need a pure Go Kafka client with no C dependencies", "you require full Kafka feature coverage including transactions, EOS, and share groups", "you need a high-performance client with low goroutine overhead", "you work with Kafka-compatible brokers like Redpanda or MSK", "you want built-in admin and schema registry support in one ecosystem"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/franz-go", "repo": "twmb/franz-go", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.940986+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:29:48.101729+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47d2a502040935fa2abca64478218fb139962f92f14b0aea06268a7f68c9c1b5", "fetched_at": "2026-08-28T04:07:38.940986+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twmb/franz-go"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.940986+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:29:48.101729+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47d2a502040935fa2abca64478218fb139962f92f14b0aea06268a7f68c9c1b5", "fetched_at": "2026-08-28T04:07:38.940986+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twmb/franz-go"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:29:48.101729+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47d2a502040935fa2abca64478218fb139962f92f14b0aea06268a7f68c9c1b5", "fetched_at": "2026-08-28T04:07:38.940986+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twmb/franz-go"}], "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:07:38.940986+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.940986+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.940986+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:29:48.101729+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47d2a502040935fa2abca64478218fb139962f92f14b0aea06268a7f68c9c1b5", "fetched_at": "2026-08-28T04:07:38.940986+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twmb/franz-go"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.940986+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.940986+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:29:48.101729+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47d2a502040935fa2abca64478218fb139962f92f14b0aea06268a7f68c9c1b5", "fetched_at": "2026-08-28T04:07:38.940986+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twmb/franz-go"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.940986+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.940986+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.940986+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:29:48.101729+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47d2a502040935fa2abca64478218fb139962f92f14b0aea06268a7f68c9c1b5", "fetched_at": "2026-08-28T04:07:38.940986+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twmb/franz-go"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.940986+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:38.940986+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:29:48.101729+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47d2a502040935fa2abca64478218fb139962f92f14b0aea06268a7f68c9c1b5", "fetched_at": "2026-08-28T04:07:38.940986+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twmb/franz-go"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:29:48.101729+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47d2a502040935fa2abca64478218fb139962f92f14b0aea06268a7f68c9c1b5", "fetched_at": "2026-08-28T04:07:38.940986+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twmb/franz-go"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:29:48.101729+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47d2a502040935fa2abca64478218fb139962f92f14b0aea06268a7f68c9c1b5", "fetched_at": "2026-08-28T04:07:38.940986+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twmb/franz-go"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:29:48.101729+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "47d2a502040935fa2abca64478218fb139962f92f14b0aea06268a7f68c9c1b5", "fetched_at": "2026-08-28T04:07:38.940986+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twmb/franz-go"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "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": 2718, "days_push": 13, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 76, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}