{"adoption": {"forks": 1683, "observed_at": "2026-08-28T04:08:35.511561+00:00", "stars": 4099}, "canonical_url": "https://ross.abutalabs.com/products/chunjun", "card": {"archived": false, "artifact_type": "framework", "description": "A data integration framework", "domain": ["big-data", "databases"], "enriched": true, "function": ["etl", "streaming", "data-science", "plugin-system", "monitoring"], "health_score": 69, "homepage": "https://dtstack.github.io/chunjun/", "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["DTStack/chunjun"], "name": "DTStack/chunjun", "platform": ["jvm", "cross-platform"], "pushed_at": "2025-12-02T10:52:15+00:00", "repo": "DTStack/chunjun", "stars": 4099, "tags": ["flink", "data-integration", "data-synchronization", "batch-streaming", "heterogeneous-data-sources", "cdc", "apache-flink", "data-engineering", "automation", "docker", "kubernetes"], "topics": ["flink", "bigdata", "data-integration", "framework", "java"], "urls": [], "use_cases": ["sync data between mysql and hive", "real-time cdc collection from relational databases", "incremental data synchronization between heterogeneous sources", "run flink sql based etl jobs on yarn or kubernetes", "migrate data between oracle and sqlserver", "store and monitor dirty data during sync jobs", "resume failed data sync tasks from checkpoints"], "what_it_is": "ChunJun (formerly FlinkX) is a distributed, batch-and-stream data integration framework built on Apache Flink. It synchronizes and computes data across 20+ heterogeneous data sources using configurable JSON templates or Flink SQL-compatible scripts, with a pluggable reader/writer/lookup architecture.", "when_to_avoid": ["you need a lightweight single-node ETL tool without a Flink cluster", "your data sources are not among the supported plugins and you cannot write Java plugins", "you want a fully managed cloud ETL service rather than self-operated infrastructure"], "when_to_choose": ["you need batch and streaming data sync in one framework on Flink", "you must move data across many different databases and storage systems", "you want Flink SQL-compatible task configuration", "you need checkpoint-based resumable sync and dirty data handling"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/chunjun", "repo": "DTStack/chunjun", "role": "main", "score": 54}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.511561+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:23:17.242331+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e08f2a0c1f59b878bdab65032696e8d354710c62b6ddb958afc0a55e06592bc3", "fetched_at": "2026-08-28T04:08:35.511561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DTStack/chunjun"}, {"content_hash": "731a0f966c71b39cf6ec4820a0fb75be7268cf35fc88bf8e5cefadd62fd2ba9f", "fetched_at": "2026-08-29T09:14:50.158905+00:00", "kind": "homepage", "missing": false, "url": "https://dtstack.github.io/chunjun/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.511561+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:23:17.242331+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e08f2a0c1f59b878bdab65032696e8d354710c62b6ddb958afc0a55e06592bc3", "fetched_at": "2026-08-28T04:08:35.511561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DTStack/chunjun"}, {"content_hash": "731a0f966c71b39cf6ec4820a0fb75be7268cf35fc88bf8e5cefadd62fd2ba9f", "fetched_at": "2026-08-29T09:14:50.158905+00:00", "kind": "homepage", "missing": false, "url": "https://dtstack.github.io/chunjun/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:23:17.242331+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e08f2a0c1f59b878bdab65032696e8d354710c62b6ddb958afc0a55e06592bc3", "fetched_at": "2026-08-28T04:08:35.511561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DTStack/chunjun"}, {"content_hash": "731a0f966c71b39cf6ec4820a0fb75be7268cf35fc88bf8e5cefadd62fd2ba9f", "fetched_at": "2026-08-29T09:14:50.158905+00:00", "kind": "homepage", "missing": false, "url": "https://dtstack.github.io/chunjun/"}], "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:35.511561+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.511561+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.511561+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:23:17.242331+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e08f2a0c1f59b878bdab65032696e8d354710c62b6ddb958afc0a55e06592bc3", "fetched_at": "2026-08-28T04:08:35.511561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DTStack/chunjun"}, {"content_hash": "731a0f966c71b39cf6ec4820a0fb75be7268cf35fc88bf8e5cefadd62fd2ba9f", "fetched_at": "2026-08-29T09:14:50.158905+00:00", "kind": "homepage", "missing": false, "url": "https://dtstack.github.io/chunjun/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.511561+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.511561+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:23:17.242331+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e08f2a0c1f59b878bdab65032696e8d354710c62b6ddb958afc0a55e06592bc3", "fetched_at": "2026-08-28T04:08:35.511561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DTStack/chunjun"}, {"content_hash": "731a0f966c71b39cf6ec4820a0fb75be7268cf35fc88bf8e5cefadd62fd2ba9f", "fetched_at": "2026-08-29T09:14:50.158905+00:00", "kind": "homepage", "missing": false, "url": "https://dtstack.github.io/chunjun/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.511561+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.511561+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.511561+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:23:17.242331+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e08f2a0c1f59b878bdab65032696e8d354710c62b6ddb958afc0a55e06592bc3", "fetched_at": "2026-08-28T04:08:35.511561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DTStack/chunjun"}, {"content_hash": "731a0f966c71b39cf6ec4820a0fb75be7268cf35fc88bf8e5cefadd62fd2ba9f", "fetched_at": "2026-08-29T09:14:50.158905+00:00", "kind": "homepage", "missing": false, "url": "https://dtstack.github.io/chunjun/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.511561+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:35.511561+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:23:17.242331+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e08f2a0c1f59b878bdab65032696e8d354710c62b6ddb958afc0a55e06592bc3", "fetched_at": "2026-08-28T04:08:35.511561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DTStack/chunjun"}, {"content_hash": "731a0f966c71b39cf6ec4820a0fb75be7268cf35fc88bf8e5cefadd62fd2ba9f", "fetched_at": "2026-08-29T09:14:50.158905+00:00", "kind": "homepage", "missing": false, "url": "https://dtstack.github.io/chunjun/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:23:17.242331+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e08f2a0c1f59b878bdab65032696e8d354710c62b6ddb958afc0a55e06592bc3", "fetched_at": "2026-08-28T04:08:35.511561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DTStack/chunjun"}, {"content_hash": "731a0f966c71b39cf6ec4820a0fb75be7268cf35fc88bf8e5cefadd62fd2ba9f", "fetched_at": "2026-08-29T09:14:50.158905+00:00", "kind": "homepage", "missing": false, "url": "https://dtstack.github.io/chunjun/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:23:17.242331+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e08f2a0c1f59b878bdab65032696e8d354710c62b6ddb958afc0a55e06592bc3", "fetched_at": "2026-08-28T04:08:35.511561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DTStack/chunjun"}, {"content_hash": "731a0f966c71b39cf6ec4820a0fb75be7268cf35fc88bf8e5cefadd62fd2ba9f", "fetched_at": "2026-08-29T09:14:50.158905+00:00", "kind": "homepage", "missing": false, "url": "https://dtstack.github.io/chunjun/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:23:17.242331+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e08f2a0c1f59b878bdab65032696e8d354710c62b6ddb958afc0a55e06592bc3", "fetched_at": "2026-08-28T04:08:35.511561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DTStack/chunjun"}, {"content_hash": "731a0f966c71b39cf6ec4820a0fb75be7268cf35fc88bf8e5cefadd62fd2ba9f", "fetched_at": "2026-08-29T09:14:50.158905+00:00", "kind": "homepage", "missing": false, "url": "https://dtstack.github.io/chunjun/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 55, "longevity": 100, "rhythm": 27}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3074, "days_push": 274, "days_rel": 274, "gap_med": null, "n_releases_24m": 1}, "score": 54, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}