{"adoption": {"forks": 360, "observed_at": "2026-08-28T04:08:20.705705+00:00", "stars": 3811}, "canonical_url": "https://ross.abutalabs.com/products/diffy", "card": {"archived": true, "artifact_type": "service", "description": "Find potential bugs in your services with Diffy", "domain": ["testing", "developer-tools", "apis", "backend"], "enriched": true, "function": ["testing", "proxy", "middleware", "http-server"], "health_score": 10, "homepage": "https://twitter.com/diffyproject", "language": "Scala", "license": "Apache-2.0", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["twitter-archive/diffy"], "name": "twitter-archive/diffy", "platform": ["jvm", "self-hosted"], "pushed_at": "2020-07-01T19:13:06+00:00", "repo": "twitter-archive/diffy", "stars": 3811, "tags": ["differential-testing", "regression-detection", "service-comparison", "scala", "twitter-archive", "mirror-testing", "docker"], "topics": [], "urls": [], "use_cases": ["find regressions in a new version of my service without writing tests", "compare responses between old and new service implementations side by side", "detect bugs in my API by diffing candidate and known-good instances", "filter out noisy non-deterministic fields when comparing service responses", "run automated differential testing against microservices", "validate a rewritten service behaves equivalently to the original"], "what_it_is": "Diffy is a proxy-based differential testing tool from Twitter that multicasts incoming requests to a candidate service and two known-good service instances, then compares responses to surface regressions. It filters out non-deterministic noise by measuring differences between two identical known-good instances.", "when_to_avoid": ["the original repo is archived and unmaintained - use the community fork Opendiffy instead", "you need to test stateful services where side effects make response comparison unreliable", "you don't have the ability to run multiple instances of your service simultaneously"], "when_to_choose": []}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/diffy", "repo": "twitter-archive/diffy", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.705705+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:26:37.500270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6135fc58e1cbb0ad06d93d904dd3b7e090536b1f7e409d8f1b2d289a9a10dc98", "fetched_at": "2026-08-28T04:08:20.705705+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter-archive/diffy"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.705705+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:26:37.500270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6135fc58e1cbb0ad06d93d904dd3b7e090536b1f7e409d8f1b2d289a9a10dc98", "fetched_at": "2026-08-28T04:08:20.705705+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter-archive/diffy"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:26:37.500270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6135fc58e1cbb0ad06d93d904dd3b7e090536b1f7e409d8f1b2d289a9a10dc98", "fetched_at": "2026-08-28T04:08:20.705705+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter-archive/diffy"}], "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:20.705705+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.705705+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.705705+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:26:37.500270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6135fc58e1cbb0ad06d93d904dd3b7e090536b1f7e409d8f1b2d289a9a10dc98", "fetched_at": "2026-08-28T04:08:20.705705+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter-archive/diffy"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.705705+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.705705+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:26:37.500270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6135fc58e1cbb0ad06d93d904dd3b7e090536b1f7e409d8f1b2d289a9a10dc98", "fetched_at": "2026-08-28T04:08:20.705705+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter-archive/diffy"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.705705+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.705705+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.705705+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:26:37.500270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6135fc58e1cbb0ad06d93d904dd3b7e090536b1f7e409d8f1b2d289a9a10dc98", "fetched_at": "2026-08-28T04:08:20.705705+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter-archive/diffy"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.705705+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:20.705705+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:26:37.500270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6135fc58e1cbb0ad06d93d904dd3b7e090536b1f7e409d8f1b2d289a9a10dc98", "fetched_at": "2026-08-28T04:08:20.705705+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter-archive/diffy"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:26:37.500270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6135fc58e1cbb0ad06d93d904dd3b7e090536b1f7e409d8f1b2d289a9a10dc98", "fetched_at": "2026-08-28T04:08:20.705705+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter-archive/diffy"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:26:37.500270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6135fc58e1cbb0ad06d93d904dd3b7e090536b1f7e409d8f1b2d289a9a10dc98", "fetched_at": "2026-08-28T04:08:20.705705+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter-archive/diffy"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:26:37.500270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6135fc58e1cbb0ad06d93d904dd3b7e090536b1f7e409d8f1b2d289a9a10dc98", "fetched_at": "2026-08-28T04:08:20.705705+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter-archive/diffy"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4039, "days_push": 2254, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}