{"adoption": {"forks": 331, "observed_at": "2026-08-28T04:04:13.961122+00:00", "stars": 1282}, "canonical_url": "https://ross.abutalabs.com/products/ruby-kafka", "card": {"archived": false, "artifact_type": "library", "description": "A Ruby client library for Apache Kafka", "domain": ["microservices"], "enriched": true, "function": ["message-queue", "streaming"], "health_score": 78, "homepage": "http://www.rubydoc.info/gems/ruby-kafka", "language": "Ruby", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["zendesk/ruby-kafka"], "name": "zendesk/ruby-kafka", "platform": ["ruby"], "pushed_at": "2026-08-13T14:59:54+00:00", "repo": "zendesk/ruby-kafka", "stars": 1282, "tags": ["kafka-client", "apache-kafka", "ruby-gem", "event-streaming", "producer-consumer", "consumer-groups", "deprecated", "statsd", "datadog", "rails", "messaging"], "topics": ["kafka-client", "kafka", "ruby", "ruby-gem", "deprecated"], "urls": [], "use_cases": ["publish messages to Kafka from a Ruby application", "consume Kafka topic messages with consumer groups in Ruby", "integrate Kafka into a Rails app", "produce Kafka messages asynchronously with buffering and compression", "connect to Kafka with SSL encryption and SASL authentication from Ruby", "report Kafka client metrics to Statsd or Datadog", "batch-consume Kafka messages while balancing throughput and latency"], "what_it_is": "A pure-Ruby client library for Apache Kafka providing producer and consumer APIs with support for consumer groups, batching, compression, partitioning, SSL/SASL security, and Statsd/Datadog metrics. It is officially deprecated: development has stopped in favor of the rdkafka-ruby bindings to librdkafka, and only security patches and bug fixes are expected.", "when_to_avoid": ["Starting any new Ruby/Kafka project - use rdkafka-ruby (librdkafka bindings) instead", "Production systems that need full support for recent Kafka versions (only limited support beyond Kafka 1.0)", "You need a client that keeps pace with new Kafka features or wants ongoing community support", "You require guaranteed long-term maintenance and production readiness"], "when_to_choose": ["You maintain an existing Ruby codebase already built on ruby-kafka and only need bug/security fixes", "You must support legacy Kafka clusters (0.8-1.1) where this client had full support", "You cannot install the native librdkafka C dependency that rdkafka-ruby requires"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ruby-kafka", "repo": "zendesk/ruby-kafka", "role": "main", "score": 66}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.961122+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:58:16.408799+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe12244ea4507c8c9cc36b145e0daf16ab123e59bdfa890d49ba484422d30cfe", "fetched_at": "2026-08-28T04:04:13.961122+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zendesk/ruby-kafka"}, {"content_hash": "0e5873df8808daffb2ba2703512c04c1554e221e92735c2f49081c2523c59f4a", "fetched_at": "2026-08-29T12:12:51.326508+00:00", "kind": "homepage", "missing": false, "url": "http://www.rubydoc.info/gems/ruby-kafka"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.961122+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:58:16.408799+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe12244ea4507c8c9cc36b145e0daf16ab123e59bdfa890d49ba484422d30cfe", "fetched_at": "2026-08-28T04:04:13.961122+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zendesk/ruby-kafka"}, {"content_hash": "0e5873df8808daffb2ba2703512c04c1554e221e92735c2f49081c2523c59f4a", "fetched_at": "2026-08-29T12:12:51.326508+00:00", "kind": "homepage", "missing": false, "url": "http://www.rubydoc.info/gems/ruby-kafka"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:58:16.408799+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe12244ea4507c8c9cc36b145e0daf16ab123e59bdfa890d49ba484422d30cfe", "fetched_at": "2026-08-28T04:04:13.961122+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zendesk/ruby-kafka"}, {"content_hash": "0e5873df8808daffb2ba2703512c04c1554e221e92735c2f49081c2523c59f4a", "fetched_at": "2026-08-29T12:12:51.326508+00:00", "kind": "homepage", "missing": false, "url": "http://www.rubydoc.info/gems/ruby-kafka"}], "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:04:13.961122+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.961122+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.961122+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:58:16.408799+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe12244ea4507c8c9cc36b145e0daf16ab123e59bdfa890d49ba484422d30cfe", "fetched_at": "2026-08-28T04:04:13.961122+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zendesk/ruby-kafka"}, {"content_hash": "0e5873df8808daffb2ba2703512c04c1554e221e92735c2f49081c2523c59f4a", "fetched_at": "2026-08-29T12:12:51.326508+00:00", "kind": "homepage", "missing": false, "url": "http://www.rubydoc.info/gems/ruby-kafka"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.961122+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.961122+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:58:16.408799+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe12244ea4507c8c9cc36b145e0daf16ab123e59bdfa890d49ba484422d30cfe", "fetched_at": "2026-08-28T04:04:13.961122+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zendesk/ruby-kafka"}, {"content_hash": "0e5873df8808daffb2ba2703512c04c1554e221e92735c2f49081c2523c59f4a", "fetched_at": "2026-08-29T12:12:51.326508+00:00", "kind": "homepage", "missing": false, "url": "http://www.rubydoc.info/gems/ruby-kafka"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.961122+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.961122+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.961122+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:58:16.408799+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe12244ea4507c8c9cc36b145e0daf16ab123e59bdfa890d49ba484422d30cfe", "fetched_at": "2026-08-28T04:04:13.961122+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zendesk/ruby-kafka"}, {"content_hash": "0e5873df8808daffb2ba2703512c04c1554e221e92735c2f49081c2523c59f4a", "fetched_at": "2026-08-29T12:12:51.326508+00:00", "kind": "homepage", "missing": false, "url": "http://www.rubydoc.info/gems/ruby-kafka"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.961122+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.961122+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:58:16.408799+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe12244ea4507c8c9cc36b145e0daf16ab123e59bdfa890d49ba484422d30cfe", "fetched_at": "2026-08-28T04:04:13.961122+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zendesk/ruby-kafka"}, {"content_hash": "0e5873df8808daffb2ba2703512c04c1554e221e92735c2f49081c2523c59f4a", "fetched_at": "2026-08-29T12:12:51.326508+00:00", "kind": "homepage", "missing": false, "url": "http://www.rubydoc.info/gems/ruby-kafka"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:58:16.408799+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe12244ea4507c8c9cc36b145e0daf16ab123e59bdfa890d49ba484422d30cfe", "fetched_at": "2026-08-28T04:04:13.961122+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zendesk/ruby-kafka"}, {"content_hash": "0e5873df8808daffb2ba2703512c04c1554e221e92735c2f49081c2523c59f4a", "fetched_at": "2026-08-29T12:12:51.326508+00:00", "kind": "homepage", "missing": false, "url": "http://www.rubydoc.info/gems/ruby-kafka"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:58:16.408799+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe12244ea4507c8c9cc36b145e0daf16ab123e59bdfa890d49ba484422d30cfe", "fetched_at": "2026-08-28T04:04:13.961122+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zendesk/ruby-kafka"}, {"content_hash": "0e5873df8808daffb2ba2703512c04c1554e221e92735c2f49081c2523c59f4a", "fetched_at": "2026-08-29T12:12:51.326508+00:00", "kind": "homepage", "missing": false, "url": "http://www.rubydoc.info/gems/ruby-kafka"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:58:16.408799+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe12244ea4507c8c9cc36b145e0daf16ab123e59bdfa890d49ba484422d30cfe", "fetched_at": "2026-08-28T04:04:13.961122+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zendesk/ruby-kafka"}, {"content_hash": "0e5873df8808daffb2ba2703512c04c1554e221e92735c2f49081c2523c59f4a", "fetched_at": "2026-08-29T12:12:51.326508+00:00", "kind": "homepage", "missing": false, "url": "http://www.rubydoc.info/gems/ruby-kafka"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3880, "days_push": 20, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 66, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}