{"adoption": {"forks": 100, "observed_at": "2026-08-28T04:06:56.831994+00:00", "stars": 2498}, "canonical_url": "https://ross.abutalabs.com/products/the-ultimate-guide-to-ruby-timeouts", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Timeouts for popular Ruby gems", "domain": ["developer-tools", "documentation", "performance"], "enriched": true, "function": ["developer-tools", "documentation", "security"], "health_score": 74, "homepage": null, "language": "Ruby", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["ankane/the-ultimate-guide-to-ruby-timeouts"], "name": "ankane/the-ultimate-guide-to-ruby-timeouts", "platform": ["ruby"], "pushed_at": "2026-06-29T20:06:51+00:00", "repo": "ankane/the-ultimate-guide-to-ruby-timeouts", "stars": 2498, "tags": ["timeouts", "ruby-gems", "networking", "reliability", "guide"], "topics": [], "urls": [], "use_cases": ["add timeouts to ruby http clients", "set statement timeout for postgresql in activerecord", "configure redis timeout in ruby", "avoid ruby Timeout module dangers", "find default timeout settings for ruby gems", "set connection pool checkout timeout", "timeout kafka or elasticsearch clients in ruby"], "what_it_is": "A tested reference guide showing how to configure timeouts for popular Ruby gems, standard library modules, and databases. It explains timeout types (connect, read, write, statement, etc.) and warns against Ruby's Timeout module.", "when_to_avoid": ["you need timeouts for languages other than Ruby (use the companion Python/Node/Go/PHP/Rust guides)", "you need a library that enforces timeouts automatically rather than documentation", "your stack doesn't involve Ruby networking or data stores"], "when_to_choose": ["you're writing or reviewing Ruby code that makes network requests or database calls and need correct timeout configuration", "you want tested, copy-pasteable timeout snippets for specific Ruby gems", "you're hardening a Ruby service against unresponsive downstream services"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/the-ultimate-guide-to-ruby-timeouts", "repo": "ankane/the-ultimate-guide-to-ruby-timeouts", "role": "main", "score": 73}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.831994+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:27:02.607748+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "592fd230b6cb41464705841c1b914a2565f3a5cd18c36a0362894837eb9eaf3c", "fetched_at": "2026-08-28T04:06:56.831994+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ankane/the-ultimate-guide-to-ruby-timeouts"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.831994+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:27:02.607748+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "592fd230b6cb41464705841c1b914a2565f3a5cd18c36a0362894837eb9eaf3c", "fetched_at": "2026-08-28T04:06:56.831994+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ankane/the-ultimate-guide-to-ruby-timeouts"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:27:02.607748+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "592fd230b6cb41464705841c1b914a2565f3a5cd18c36a0362894837eb9eaf3c", "fetched_at": "2026-08-28T04:06:56.831994+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ankane/the-ultimate-guide-to-ruby-timeouts"}], "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:06:56.831994+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.831994+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.831994+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:27:02.607748+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "592fd230b6cb41464705841c1b914a2565f3a5cd18c36a0362894837eb9eaf3c", "fetched_at": "2026-08-28T04:06:56.831994+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ankane/the-ultimate-guide-to-ruby-timeouts"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.831994+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.831994+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:27:02.607748+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "592fd230b6cb41464705841c1b914a2565f3a5cd18c36a0362894837eb9eaf3c", "fetched_at": "2026-08-28T04:06:56.831994+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ankane/the-ultimate-guide-to-ruby-timeouts"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.831994+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.831994+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.831994+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:27:02.607748+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "592fd230b6cb41464705841c1b914a2565f3a5cd18c36a0362894837eb9eaf3c", "fetched_at": "2026-08-28T04:06:56.831994+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ankane/the-ultimate-guide-to-ruby-timeouts"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.831994+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:56.831994+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:27:02.607748+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "592fd230b6cb41464705841c1b914a2565f3a5cd18c36a0362894837eb9eaf3c", "fetched_at": "2026-08-28T04:06:56.831994+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ankane/the-ultimate-guide-to-ruby-timeouts"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:27:02.607748+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "592fd230b6cb41464705841c1b914a2565f3a5cd18c36a0362894837eb9eaf3c", "fetched_at": "2026-08-28T04:06:56.831994+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ankane/the-ultimate-guide-to-ruby-timeouts"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:27:02.607748+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "592fd230b6cb41464705841c1b914a2565f3a5cd18c36a0362894837eb9eaf3c", "fetched_at": "2026-08-28T04:06:56.831994+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ankane/the-ultimate-guide-to-ruby-timeouts"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:27:02.607748+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "592fd230b6cb41464705841c1b914a2565f3a5cd18c36a0362894837eb9eaf3c", "fetched_at": "2026-08-28T04:06:56.831994+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ankane/the-ultimate-guide-to-ruby-timeouts"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 90, "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": 4056, "days_push": 65, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 73, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}