{"adoption": {"forks": 536, "observed_at": "2026-08-28T04:06:32.902489+00:00", "stars": 2268}, "canonical_url": "https://ross.abutalabs.com/products/spring-retry", "card": {"archived": true, "artifact_type": "library", "description": null, "domain": ["developer-tools", "backend", "microservices"], "enriched": true, "function": ["middleware", "error-handling", "concurrency"], "health_score": 10, "homepage": null, "language": "Java", "license": null, "license_family": "other", "maturity": "abandoned", "member_repos": ["spring-attic/spring-retry"], "name": "spring-attic/spring-retry", "platform": ["jvm", "cross-platform"], "pushed_at": "2026-07-27T15:54:47+00:00", "repo": "spring-attic/spring-retry", "stars": 2268, "tags": ["retry", "spring", "resilience", "backoff", "annotations", "archived"], "topics": [], "urls": [], "use_cases": ["retry failed remote calls in a spring service", "add automatic retry with exponential backoff to flaky operations", "declarative retry annotations for spring beans", "recover gracefully after retries are exhausted", "retry transient database or network errors in spring batch jobs", "imperative retry template for explicit retry logic"], "what_it_is": "Spring Retry is a Java library providing declarative (@Retryable/@Recover annotations) and imperative (RetryTemplate) retry support for Spring applications, with configurable backoff policies and exception-based retry rules. It has been archived and superseded by the resilience features built into Spring Framework 7.", "when_to_avoid": ["you are starting a new project on Spring Framework 7 or later, which has built-in resilience features", "you need a non-Spring Java project and prefer a standalone retry library", "you require actively maintained software with ongoing support"], "when_to_choose": ["you are on an older Spring stack (pre-Framework 7) that already uses Spring Batch or Spring Integration", "you need annotation-driven retry with AOP in a Spring application", "you want a battle-tested retry abstraction with pluggable backoff policies"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/spring-retry", "repo": "spring-attic/spring-retry", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:32.902489+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:42:02.993611+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "72a98902cb79ecbed654c7dff910cd936452ef0ffe0369f522877b4b8d26fca0", "fetched_at": "2026-08-28T04:06:32.902489+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spring-attic/spring-retry"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:32.902489+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:42:02.993611+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "72a98902cb79ecbed654c7dff910cd936452ef0ffe0369f522877b4b8d26fca0", "fetched_at": "2026-08-28T04:06:32.902489+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spring-attic/spring-retry"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:42:02.993611+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "72a98902cb79ecbed654c7dff910cd936452ef0ffe0369f522877b4b8d26fca0", "fetched_at": "2026-08-28T04:06:32.902489+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spring-attic/spring-retry"}], "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:32.902489+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:32.902489+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:32.902489+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:42:02.993611+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "72a98902cb79ecbed654c7dff910cd936452ef0ffe0369f522877b4b8d26fca0", "fetched_at": "2026-08-28T04:06:32.902489+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spring-attic/spring-retry"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:32.902489+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:32.902489+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:42:02.993611+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "72a98902cb79ecbed654c7dff910cd936452ef0ffe0369f522877b4b8d26fca0", "fetched_at": "2026-08-28T04:06:32.902489+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spring-attic/spring-retry"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:32.902489+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:32.902489+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:32.902489+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:42:02.993611+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "72a98902cb79ecbed654c7dff910cd936452ef0ffe0369f522877b4b8d26fca0", "fetched_at": "2026-08-28T04:06:32.902489+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spring-attic/spring-retry"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:32.902489+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:32.902489+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:42:02.993611+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "72a98902cb79ecbed654c7dff910cd936452ef0ffe0369f522877b4b8d26fca0", "fetched_at": "2026-08-28T04:06:32.902489+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spring-attic/spring-retry"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:42:02.993611+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "72a98902cb79ecbed654c7dff910cd936452ef0ffe0369f522877b4b8d26fca0", "fetched_at": "2026-08-28T04:06:32.902489+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spring-attic/spring-retry"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:42:02.993611+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "72a98902cb79ecbed654c7dff910cd936452ef0ffe0369f522877b4b8d26fca0", "fetched_at": "2026-08-28T04:06:32.902489+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spring-attic/spring-retry"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:42:02.993611+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "72a98902cb79ecbed654c7dff910cd936452ef0ffe0369f522877b4b8d26fca0", "fetched_at": "2026-08-28T04:06:32.902489+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spring-attic/spring-retry"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 94, "longevity": 100, "rhythm": 63}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5734, "days_push": 37, "days_rel": 86, "gap_med": 104.5, "n_releases_24m": 5}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}