{"adoption": {"forks": 410, "observed_at": "2026-08-28T04:04:04.319895+00:00", "stars": 1231}, "canonical_url": "https://ross.abutalabs.com/products/raft-java", "card": {"archived": false, "artifact_type": "library", "description": "Raft Java implementation which is simple and easy to understand.", "domain": ["microservices", "databases", "developer-tools"], "enriched": true, "function": ["rpc", "concurrency", "developer-tools"], "health_score": 20, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["wenweihu86/raft-java"], "name": "wenweihu86/raft-java", "platform": ["jvm", "cross-platform"], "pushed_at": "2024-01-10T04:43:19+00:00", "repo": "wenweihu86/raft-java", "stars": 1231, "tags": ["raft-consensus", "distributed-storage", "leader-election", "log-replication", "snapshot", "java-library", "consensus-algorithm", "algorithms", "linux"], "topics": ["raft", "raft-protocol", "raft-consensus-algorithm", "distributed-storage", "distributed-file-system", "raft-java", "raft-algorithm", "raft-consensus"], "urls": [], "use_cases": ["build a distributed key-value store in Java", "learn how the Raft consensus algorithm works", "add replicated state machine consensus to a Java service", "implement leader election and log replication", "run a small 3-node raft cluster for testing", "build a distributed file system with consensus"], "what_it_is": "A Java library implementing the Raft consensus algorithm, supporting leader election, log replication, snapshots, and dynamic cluster membership changes. It is designed to be simple and easy to understand, letting developers build distributed storage systems on top of it.", "when_to_avoid": ["you need a production-hardened, widely deployed consensus library", "you need Maven Central artifacts (it must be manually installed)", "you need multi-raft sharding or advanced features out of the box"], "when_to_choose": ["you want a readable, educational Raft implementation in Java", "you need to embed consensus into a custom Java storage system", "you want control over the state machine and snapshot logic"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/raft-java", "repo": "wenweihu86/raft-java", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.319895+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T08:22:32.793249+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e79a80e2f5ada9cd99efd723b8d3f4e8884f123fb276dce3e60e1db0dc7c8ff6", "fetched_at": "2026-08-28T04:04:04.319895+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wenweihu86/raft-java"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.319895+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T08:22:32.793249+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e79a80e2f5ada9cd99efd723b8d3f4e8884f123fb276dce3e60e1db0dc7c8ff6", "fetched_at": "2026-08-28T04:04:04.319895+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wenweihu86/raft-java"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T08:22:32.793249+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e79a80e2f5ada9cd99efd723b8d3f4e8884f123fb276dce3e60e1db0dc7c8ff6", "fetched_at": "2026-08-28T04:04:04.319895+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wenweihu86/raft-java"}], "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:04.319895+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.319895+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.319895+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T08:22:32.793249+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e79a80e2f5ada9cd99efd723b8d3f4e8884f123fb276dce3e60e1db0dc7c8ff6", "fetched_at": "2026-08-28T04:04:04.319895+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wenweihu86/raft-java"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.319895+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.319895+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T08:22:32.793249+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e79a80e2f5ada9cd99efd723b8d3f4e8884f123fb276dce3e60e1db0dc7c8ff6", "fetched_at": "2026-08-28T04:04:04.319895+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wenweihu86/raft-java"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.319895+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.319895+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.319895+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T08:22:32.793249+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e79a80e2f5ada9cd99efd723b8d3f4e8884f123fb276dce3e60e1db0dc7c8ff6", "fetched_at": "2026-08-28T04:04:04.319895+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wenweihu86/raft-java"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.319895+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.319895+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T08:22:32.793249+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e79a80e2f5ada9cd99efd723b8d3f4e8884f123fb276dce3e60e1db0dc7c8ff6", "fetched_at": "2026-08-28T04:04:04.319895+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wenweihu86/raft-java"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T08:22:32.793249+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e79a80e2f5ada9cd99efd723b8d3f4e8884f123fb276dce3e60e1db0dc7c8ff6", "fetched_at": "2026-08-28T04:04:04.319895+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wenweihu86/raft-java"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T08:22:32.793249+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e79a80e2f5ada9cd99efd723b8d3f4e8884f123fb276dce3e60e1db0dc7c8ff6", "fetched_at": "2026-08-28T04:04:04.319895+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wenweihu86/raft-java"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T08:22:32.793249+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e79a80e2f5ada9cd99efd723b8d3f4e8884f123fb276dce3e60e1db0dc7c8ff6", "fetched_at": "2026-08-28T04:04:04.319895+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wenweihu86/raft-java"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3410, "days_push": 966, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}