{"adoption": {"forks": 338, "observed_at": "2026-08-28T04:08:11.844873+00:00", "stars": 3619}, "canonical_url": "https://ross.abutalabs.com/products/thesecretlivesofdata", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Understanding what your bits do when you're not looking.", "domain": ["microservices", "education", "data-visualization"], "enriched": true, "function": ["data-visualization", "simulation"], "health_score": 20, "homepage": null, "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["benbjohnson/thesecretlivesofdata"], "name": "benbjohnson/thesecretlivesofdata", "platform": ["browser"], "pushed_at": "2023-03-08T16:33:45+00:00", "repo": "benbjohnson/thesecretlivesofdata", "stars": 3619, "tags": ["interactive-visualization", "raft-consensus", "educational", "distributed-systems", "education", "algorithms", "web", "javascript"], "topics": [], "urls": [], "use_cases": ["learn how the Raft consensus algorithm works", "visualize leader election and log replication in distributed systems", "teach distributed systems concepts to students", "understand what happens to data in distributed databases", "explore interactive explanations of system internals"], "what_it_is": "An interactive web-based educational project that visualizes how distributed systems work, best known for its 'Raft: Understandable Distributed Consensus' visualization. It aims to teach how data flows through systems like databases and servers through step-by-step animations.", "when_to_avoid": ["you need a production Raft implementation or library", "you need comprehensive coverage of many distributed systems topics (only Raft is complete)", "you need up-to-date content, as development is largely inactive"], "when_to_choose": ["you want an intuitive, visual introduction to Raft consensus", "you're teaching or learning distributed systems fundamentals", "you prefer interactive animations over papers or lectures"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/thesecretlivesofdata", "repo": "benbjohnson/thesecretlivesofdata", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.844873+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:31:59.129368+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8277d8b82815d6a6af82f71b87f8d8d540e652bb83b7ba32c1b4d08a39736962", "fetched_at": "2026-08-28T04:08:11.844873+00:00", "kind": "readme", "missing": false, "url": "https://github.com/benbjohnson/thesecretlivesofdata"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.844873+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:31:59.129368+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8277d8b82815d6a6af82f71b87f8d8d540e652bb83b7ba32c1b4d08a39736962", "fetched_at": "2026-08-28T04:08:11.844873+00:00", "kind": "readme", "missing": false, "url": "https://github.com/benbjohnson/thesecretlivesofdata"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:31:59.129368+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8277d8b82815d6a6af82f71b87f8d8d540e652bb83b7ba32c1b4d08a39736962", "fetched_at": "2026-08-28T04:08:11.844873+00:00", "kind": "readme", "missing": false, "url": "https://github.com/benbjohnson/thesecretlivesofdata"}], "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:08:11.844873+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.844873+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.844873+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:31:59.129368+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8277d8b82815d6a6af82f71b87f8d8d540e652bb83b7ba32c1b4d08a39736962", "fetched_at": "2026-08-28T04:08:11.844873+00:00", "kind": "readme", "missing": false, "url": "https://github.com/benbjohnson/thesecretlivesofdata"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.844873+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.844873+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:31:59.129368+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8277d8b82815d6a6af82f71b87f8d8d540e652bb83b7ba32c1b4d08a39736962", "fetched_at": "2026-08-28T04:08:11.844873+00:00", "kind": "readme", "missing": false, "url": "https://github.com/benbjohnson/thesecretlivesofdata"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.844873+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.844873+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.844873+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:31:59.129368+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8277d8b82815d6a6af82f71b87f8d8d540e652bb83b7ba32c1b4d08a39736962", "fetched_at": "2026-08-28T04:08:11.844873+00:00", "kind": "readme", "missing": false, "url": "https://github.com/benbjohnson/thesecretlivesofdata"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.844873+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.844873+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:31:59.129368+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8277d8b82815d6a6af82f71b87f8d8d540e652bb83b7ba32c1b4d08a39736962", "fetched_at": "2026-08-28T04:08:11.844873+00:00", "kind": "readme", "missing": false, "url": "https://github.com/benbjohnson/thesecretlivesofdata"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:31:59.129368+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8277d8b82815d6a6af82f71b87f8d8d540e652bb83b7ba32c1b4d08a39736962", "fetched_at": "2026-08-28T04:08:11.844873+00:00", "kind": "readme", "missing": false, "url": "https://github.com/benbjohnson/thesecretlivesofdata"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:31:59.129368+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8277d8b82815d6a6af82f71b87f8d8d540e652bb83b7ba32c1b4d08a39736962", "fetched_at": "2026-08-28T04:08:11.844873+00:00", "kind": "readme", "missing": false, "url": "https://github.com/benbjohnson/thesecretlivesofdata"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:31:59.129368+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8277d8b82815d6a6af82f71b87f8d8d540e652bb83b7ba32c1b4d08a39736962", "fetched_at": "2026-08-28T04:08:11.844873+00:00", "kind": "readme", "missing": false, "url": "https://github.com/benbjohnson/thesecretlivesofdata"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "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": 4780, "days_push": 1274, "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}}