{"adoption": {"forks": 87, "observed_at": "2026-08-28T04:04:51.298099+00:00", "stars": 1484}, "canonical_url": "https://ross.abutalabs.com/products/semian", "card": {"archived": false, "artifact_type": "library", "description": ":monkey: Resiliency toolkit for Ruby for failing fast", "domain": ["backend", "web-development", "developer-tools", "microservices", "performance"], "enriched": true, "function": ["caching", "middleware", "error-handling", "concurrency"], "health_score": 94, "homepage": null, "language": "Ruby", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["Shopify/semian"], "name": "Shopify/semian", "platform": ["ruby"], "pushed_at": "2026-07-28T06:31:11+00:00", "repo": "Shopify/semian", "stars": 1484, "tags": ["circuit-breaker", "bulkhead", "resiliency", "fail-fast", "ruby-gem", "netflix-hystrix-inspired", "linux", "macos"], "topics": ["resiliency", "circuit-breaker", "bulkheads", "ruby", "webscale"], "urls": [], "use_cases": ["prevent cascading failures from slow redis or mysql in a rails app", "add circuit breaker to external http service calls in ruby", "limit concurrent connections to a slow downstream resource", "fail fast when a dependency is unresponsive instead of waiting for timeouts", "protect ruby workers from being exhausted by slow database queries", "build resilient ruby applications with bulkheads"], "what_it_is": "Semian is a Ruby resiliency library that prevents cascading failures when accessing slow or unresponsive external services like databases and HTTP APIs. It implements circuit breaker and bulkhead patterns (using SysV semaphores) to fail fast instead of blocking workers on timeouts.", "when_to_avoid": ["you are not using Ruby", "your app is single-threaded or event-driven where blocking is not an issue", "you need resiliency patterns in other languages or non-supported adapters"], "when_to_choose": ["you run a multi-threaded Ruby app (e.g. Rails, Sidekiq) calling databases, Redis, or HTTP services", "you need server-wide concurrency control via SysV semaphores", "you want battle-tested resiliency patterns from Shopify production since 2014"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/semian", "repo": "Shopify/semian", "role": "main", "score": 86}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.298099+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:33:58.437481+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e7e9fe6e61701ef39faaf07911ac9d6bb420e421a1c756dfde4debd942e0cf79", "fetched_at": "2026-08-28T04:04:51.298099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shopify/semian"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.298099+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:33:58.437481+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e7e9fe6e61701ef39faaf07911ac9d6bb420e421a1c756dfde4debd942e0cf79", "fetched_at": "2026-08-28T04:04:51.298099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shopify/semian"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:33:58.437481+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e7e9fe6e61701ef39faaf07911ac9d6bb420e421a1c756dfde4debd942e0cf79", "fetched_at": "2026-08-28T04:04:51.298099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shopify/semian"}], "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:51.298099+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.298099+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.298099+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:33:58.437481+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e7e9fe6e61701ef39faaf07911ac9d6bb420e421a1c756dfde4debd942e0cf79", "fetched_at": "2026-08-28T04:04:51.298099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shopify/semian"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.298099+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.298099+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:33:58.437481+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e7e9fe6e61701ef39faaf07911ac9d6bb420e421a1c756dfde4debd942e0cf79", "fetched_at": "2026-08-28T04:04:51.298099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shopify/semian"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.298099+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.298099+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.298099+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:33:58.437481+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e7e9fe6e61701ef39faaf07911ac9d6bb420e421a1c756dfde4debd942e0cf79", "fetched_at": "2026-08-28T04:04:51.298099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shopify/semian"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.298099+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.298099+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:33:58.437481+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e7e9fe6e61701ef39faaf07911ac9d6bb420e421a1c756dfde4debd942e0cf79", "fetched_at": "2026-08-28T04:04:51.298099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shopify/semian"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:33:58.437481+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e7e9fe6e61701ef39faaf07911ac9d6bb420e421a1c756dfde4debd942e0cf79", "fetched_at": "2026-08-28T04:04:51.298099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shopify/semian"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:33:58.437481+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e7e9fe6e61701ef39faaf07911ac9d6bb420e421a1c756dfde4debd942e0cf79", "fetched_at": "2026-08-28T04:04:51.298099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shopify/semian"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:33:58.437481+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e7e9fe6e61701ef39faaf07911ac9d6bb420e421a1c756dfde4debd942e0cf79", "fetched_at": "2026-08-28T04:04:51.298099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Shopify/semian"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 94, "longevity": 100, "rhythm": 69}, "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": 4362, "days_push": 36, "days_rel": 205, "gap_med": 7, "n_releases_24m": 16}, "score": 86, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}