{"adoption": {"forks": 403, "observed_at": "2026-08-28T04:06:33.201571+00:00", "stars": 2272}, "canonical_url": "https://ross.abutalabs.com/products/finatra", "card": {"archived": false, "artifact_type": "framework", "description": "Fast, testable, Scala services built on TwitterServer and Finagle", "domain": ["web-development", "backend", "apis", "microservices", "testing"], "enriched": true, "function": ["web-framework", "api-framework", "http-server", "rpc", "routing", "middleware", "serialization", "testing"], "health_score": 42, "homepage": "https://twitter.github.io/finatra/", "language": "Scala", "license": "Apache-2.0", "license_family": "permissive", "maturity": "stable", "member_repos": ["twitter/finatra"], "name": "twitter/finatra", "platform": ["jvm"], "pushed_at": "2025-08-18T21:11:27+00:00", "repo": "twitter/finatra", "stars": 2272, "tags": ["scala", "finagle", "twitter-server", "thrift", "guice", "dependency-injection", "jackson-json", "slf4j-logging", "embedded-test-servers", "microservices"], "topics": ["scala", "finagle", "twitter-server", "http", "framework", "microservices", "thrift", "guice", "slf4j", "testing"], "urls": [], "use_cases": ["build http rest apis in scala", "create thrift rpc services in scala", "build microservices on top of finagle", "write integration tests for scala http servers", "add dependency injection with guice to scala services", "handle json parsing with required fields and validation in scala apis", "build production-grade scala server applications"], "what_it_is": "Finatra is a lightweight Scala framework for building fast, testable HTTP and Thrift services on top of TwitterServer and Finagle. It provides controllers, filters, Jackson-based JSON support, optional Guice dependency injection, SLF4J logging integration, and extensive feature and integration testing utilities.", "when_to_avoid": ["your project is not on the JVM or not written in Scala", "you need a simple service or script where the Finagle/TwitterServer stack is overkill", "your team prefers mainstream Scala stacks like Play, Akka HTTP/Pekko, or Spring Boot with larger communities", "you want an annotation-driven, container-style framework rather than Finatra's idiomatic controller/filter style"], "when_to_choose": ["you are building Scala HTTP or Thrift services and want Finagle's performance with a higher-level API", "you need first-class feature and integration testing support with embedded servers", "you are already in the Twitter/Finagle ecosystem and want TwitterServer operational features out of the box", "you want per-route or per-controller composable filter middleware"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/finatra", "repo": "twitter/finatra", "role": "main", "score": 39}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.201571+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:41:47.420236+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d24d6108b6c1e685e8316f2e5701dab95b06ab7021457b6a387d54acdfcd3db6", "fetched_at": "2026-08-28T04:06:33.201571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter/finatra"}, {"content_hash": "5eedbcbf7bbbd868b0d5bbd657adbc331d8581b182dddf087cd7e1b8391bee2e", "fetched_at": "2026-08-29T10:22:09.486652+00:00", "kind": "homepage", "missing": false, "url": "https://twitter.github.io/finatra/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.201571+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:41:47.420236+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d24d6108b6c1e685e8316f2e5701dab95b06ab7021457b6a387d54acdfcd3db6", "fetched_at": "2026-08-28T04:06:33.201571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter/finatra"}, {"content_hash": "5eedbcbf7bbbd868b0d5bbd657adbc331d8581b182dddf087cd7e1b8391bee2e", "fetched_at": "2026-08-29T10:22:09.486652+00:00", "kind": "homepage", "missing": false, "url": "https://twitter.github.io/finatra/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:41:47.420236+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d24d6108b6c1e685e8316f2e5701dab95b06ab7021457b6a387d54acdfcd3db6", "fetched_at": "2026-08-28T04:06:33.201571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter/finatra"}, {"content_hash": "5eedbcbf7bbbd868b0d5bbd657adbc331d8581b182dddf087cd7e1b8391bee2e", "fetched_at": "2026-08-29T10:22:09.486652+00:00", "kind": "homepage", "missing": false, "url": "https://twitter.github.io/finatra/"}], "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:33.201571+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.201571+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.201571+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:41:47.420236+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d24d6108b6c1e685e8316f2e5701dab95b06ab7021457b6a387d54acdfcd3db6", "fetched_at": "2026-08-28T04:06:33.201571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter/finatra"}, {"content_hash": "5eedbcbf7bbbd868b0d5bbd657adbc331d8581b182dddf087cd7e1b8391bee2e", "fetched_at": "2026-08-29T10:22:09.486652+00:00", "kind": "homepage", "missing": false, "url": "https://twitter.github.io/finatra/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.201571+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.201571+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:41:47.420236+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d24d6108b6c1e685e8316f2e5701dab95b06ab7021457b6a387d54acdfcd3db6", "fetched_at": "2026-08-28T04:06:33.201571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter/finatra"}, {"content_hash": "5eedbcbf7bbbd868b0d5bbd657adbc331d8581b182dddf087cd7e1b8391bee2e", "fetched_at": "2026-08-29T10:22:09.486652+00:00", "kind": "homepage", "missing": false, "url": "https://twitter.github.io/finatra/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.201571+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.201571+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.201571+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:41:47.420236+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d24d6108b6c1e685e8316f2e5701dab95b06ab7021457b6a387d54acdfcd3db6", "fetched_at": "2026-08-28T04:06:33.201571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter/finatra"}, {"content_hash": "5eedbcbf7bbbd868b0d5bbd657adbc331d8581b182dddf087cd7e1b8391bee2e", "fetched_at": "2026-08-29T10:22:09.486652+00:00", "kind": "homepage", "missing": false, "url": "https://twitter.github.io/finatra/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.201571+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.201571+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:41:47.420236+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d24d6108b6c1e685e8316f2e5701dab95b06ab7021457b6a387d54acdfcd3db6", "fetched_at": "2026-08-28T04:06:33.201571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter/finatra"}, {"content_hash": "5eedbcbf7bbbd868b0d5bbd657adbc331d8581b182dddf087cd7e1b8391bee2e", "fetched_at": "2026-08-29T10:22:09.486652+00:00", "kind": "homepage", "missing": false, "url": "https://twitter.github.io/finatra/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:41:47.420236+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d24d6108b6c1e685e8316f2e5701dab95b06ab7021457b6a387d54acdfcd3db6", "fetched_at": "2026-08-28T04:06:33.201571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter/finatra"}, {"content_hash": "5eedbcbf7bbbd868b0d5bbd657adbc331d8581b182dddf087cd7e1b8391bee2e", "fetched_at": "2026-08-29T10:22:09.486652+00:00", "kind": "homepage", "missing": false, "url": "https://twitter.github.io/finatra/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:41:47.420236+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d24d6108b6c1e685e8316f2e5701dab95b06ab7021457b6a387d54acdfcd3db6", "fetched_at": "2026-08-28T04:06:33.201571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter/finatra"}, {"content_hash": "5eedbcbf7bbbd868b0d5bbd657adbc331d8581b182dddf087cd7e1b8391bee2e", "fetched_at": "2026-08-29T10:22:09.486652+00:00", "kind": "homepage", "missing": false, "url": "https://twitter.github.io/finatra/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:41:47.420236+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d24d6108b6c1e685e8316f2e5701dab95b06ab7021457b6a387d54acdfcd3db6", "fetched_at": "2026-08-28T04:06:33.201571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter/finatra"}, {"content_hash": "5eedbcbf7bbbd868b0d5bbd657adbc331d8581b182dddf087cd7e1b8391bee2e", "fetched_at": "2026-08-29T10:22:09.486652+00:00", "kind": "homepage", "missing": false, "url": "https://twitter.github.io/finatra/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 37, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5312, "days_push": 380, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 39, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}