{"adoption": {"forks": 569, "observed_at": "2026-09-01T02:13:58.857767+00:00", "stars": 1011}, "canonical_url": "https://ross.abutalabs.com/products/fflib-apex-common", "card": {"archived": false, "artifact_type": "library", "description": "Common Apex Library supporting Apex Enterprise Patterns and much more!", "domain": ["developer-tools", "testing"], "enriched": true, "function": ["testing", "mocking", "developer-tools"], "health_score": 80, "homepage": null, "language": "Apex", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "active", "member_repos": ["apex-enterprise-patterns/fflib-apex-common"], "name": "apex-enterprise-patterns/fflib-apex-common", "platform": ["cloud"], "pushed_at": "2026-08-29T06:48:28+00:00", "repo": "apex-enterprise-patterns/fflib-apex-common", "stars": 1011, "tags": ["salesforce", "apex", "enterprise-patterns", "design-patterns", "unit-of-work", "service-layer", "force-com", "automation"], "topics": [], "urls": [], "use_cases": ["apply enterprise design patterns in Salesforce Apex code", "implement service layer and unit of work on Force.com", "manage DML governor limits with separation of concerns", "structure a large Salesforce codebase with best practices", "build testable Apex applications with ApexMocks", "learn Apex Enterprise Patterns from a reference implementation"], "what_it_is": "A common Apex library for Salesforce implementing Apex Enterprise Patterns such as Service Layer, Unit of Work, and Data Mapper. It helps structure enterprise Salesforce code with better separation of concerns and best practices.", "when_to_avoid": ["You are writing small, simple Salesforce scripts or triggers where patterns add overhead", "You are not developing on the Salesforce platform"], "when_to_choose": ["You are building a substantial Salesforce application and want proven architectural patterns", "You want better separation of concerns and governed resource management in Apex", "You plan to use ApexMocks for Mockito-style unit testing"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/fflib-apex-common", "repo": "apex-enterprise-patterns/fflib-apex-common", "role": "main", "score": 77}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.857767+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:12:01.513724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70fe4d43a580e8c70047d35552febd871515b104e9ff7ae5f84da704b010c6f2", "fetched_at": "2026-09-01T02:13:58.857767+00:00", "kind": "readme", "missing": false, "url": "https://github.com/apex-enterprise-patterns/fflib-apex-common"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.857767+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:12:01.513724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70fe4d43a580e8c70047d35552febd871515b104e9ff7ae5f84da704b010c6f2", "fetched_at": "2026-09-01T02:13:58.857767+00:00", "kind": "readme", "missing": false, "url": "https://github.com/apex-enterprise-patterns/fflib-apex-common"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:12:01.513724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70fe4d43a580e8c70047d35552febd871515b104e9ff7ae5f84da704b010c6f2", "fetched_at": "2026-09-01T02:13:58.857767+00:00", "kind": "readme", "missing": false, "url": "https://github.com/apex-enterprise-patterns/fflib-apex-common"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.857767+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.857767+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.857767+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:12:01.513724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70fe4d43a580e8c70047d35552febd871515b104e9ff7ae5f84da704b010c6f2", "fetched_at": "2026-09-01T02:13:58.857767+00:00", "kind": "readme", "missing": false, "url": "https://github.com/apex-enterprise-patterns/fflib-apex-common"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.857767+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.857767+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:12:01.513724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70fe4d43a580e8c70047d35552febd871515b104e9ff7ae5f84da704b010c6f2", "fetched_at": "2026-09-01T02:13:58.857767+00:00", "kind": "readme", "missing": false, "url": "https://github.com/apex-enterprise-patterns/fflib-apex-common"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.857767+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.857767+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.857767+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:12:01.513724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70fe4d43a580e8c70047d35552febd871515b104e9ff7ae5f84da704b010c6f2", "fetched_at": "2026-09-01T02:13:58.857767+00:00", "kind": "readme", "missing": false, "url": "https://github.com/apex-enterprise-patterns/fflib-apex-common"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.857767+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-01T02:13:58.857767+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:12:01.513724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70fe4d43a580e8c70047d35552febd871515b104e9ff7ae5f84da704b010c6f2", "fetched_at": "2026-09-01T02:13:58.857767+00:00", "kind": "readme", "missing": false, "url": "https://github.com/apex-enterprise-patterns/fflib-apex-common"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:12:01.513724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70fe4d43a580e8c70047d35552febd871515b104e9ff7ae5f84da704b010c6f2", "fetched_at": "2026-09-01T02:13:58.857767+00:00", "kind": "readme", "missing": false, "url": "https://github.com/apex-enterprise-patterns/fflib-apex-common"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:12:01.513724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70fe4d43a580e8c70047d35552febd871515b104e9ff7ae5f84da704b010c6f2", "fetched_at": "2026-09-01T02:13:58.857767+00:00", "kind": "readme", "missing": false, "url": "https://github.com/apex-enterprise-patterns/fflib-apex-common"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:12:01.513724+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "70fe4d43a580e8c70047d35552febd871515b104e9ff7ae5f84da704b010c6f2", "fetched_at": "2026-09-01T02:13:58.857767+00:00", "kind": "readme", "missing": false, "url": "https://github.com/apex-enterprise-patterns/fflib-apex-common"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "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": 4754, "days_push": 4, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 77, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 5, "stale_scrape": false}}