{"adoption": {"forks": 284, "observed_at": "2026-08-28T04:03:27.103204+00:00", "stars": 1066}, "canonical_url": "https://ross.abutalabs.com/products/go-mysql-transfer", "card": {"archived": false, "artifact_type": "application", "description": "MySQL Binlog 增量实时同步工具", "domain": ["databases", "big-data", "self-hosted"], "enriched": true, "function": ["etl", "streaming", "database", "monitoring"], "health_score": 20, "homepage": null, "language": "JavaScript", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["wj596/go-mysql-transfer"], "name": "wj596/go-mysql-transfer", "platform": ["windows", "cross-platform", "go"], "pushed_at": "2023-11-27T08:12:13+00:00", "repo": "wj596/go-mysql-transfer", "stars": 1066, "tags": ["mysql-binlog", "cdc", "data-sync", "redis", "elasticsearch", "kafka", "rocketmq", "rabbitmq", "mongodb", "lua-scripting", "prometheus", "high-availability", "data-engineering", "linux"], "topics": [], "urls": [], "use_cases": ["sync mysql changes to elasticsearch in real time", "stream mysql binlog events to kafka", "keep redis cache updated from mysql", "replicate mysql data into mongodb", "cdc pipeline from mysql to message queues", "initialize full dataset then incremental sync", "monitor mysql data sync with prometheus"], "what_it_is": "A standalone Go application that syncs MySQL data in real time by listening to the MySQL binlog as a fake replica. It transforms row changes into messages via rules, templates, or Lua scripts and delivers them to sinks like Redis, MongoDB, Elasticsearch, Kafka, RocketMQ, RabbitMQ, or HTTP APIs.", "when_to_avoid": ["you need sources other than MySQL", "you prefer a Java ecosystem tool like Canal with deep customization", "you need actively developed features or recent community support", "you need a managed cloud CDC service"], "when_to_choose": ["you need a single-binary, dependency-free MySQL CDC tool", "you want built-in sinks without writing custom client code", "you need Lua scripting for complex transformation logic", "you want full initial sync plus incremental binlog sync"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/go-mysql-transfer", "repo": "wj596/go-mysql-transfer", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.103204+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:55:27.414873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe121f9bb26e7e23f86e3db62f8202a5b382b074a0000133718f218d6536b1c9", "fetched_at": "2026-08-28T04:03:27.103204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wj596/go-mysql-transfer"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.103204+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:55:27.414873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe121f9bb26e7e23f86e3db62f8202a5b382b074a0000133718f218d6536b1c9", "fetched_at": "2026-08-28T04:03:27.103204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wj596/go-mysql-transfer"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:55:27.414873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe121f9bb26e7e23f86e3db62f8202a5b382b074a0000133718f218d6536b1c9", "fetched_at": "2026-08-28T04:03:27.103204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wj596/go-mysql-transfer"}], "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:03:27.103204+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.103204+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.103204+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:55:27.414873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe121f9bb26e7e23f86e3db62f8202a5b382b074a0000133718f218d6536b1c9", "fetched_at": "2026-08-28T04:03:27.103204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wj596/go-mysql-transfer"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.103204+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.103204+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:55:27.414873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe121f9bb26e7e23f86e3db62f8202a5b382b074a0000133718f218d6536b1c9", "fetched_at": "2026-08-28T04:03:27.103204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wj596/go-mysql-transfer"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.103204+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.103204+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.103204+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:55:27.414873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe121f9bb26e7e23f86e3db62f8202a5b382b074a0000133718f218d6536b1c9", "fetched_at": "2026-08-28T04:03:27.103204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wj596/go-mysql-transfer"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.103204+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.103204+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:55:27.414873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe121f9bb26e7e23f86e3db62f8202a5b382b074a0000133718f218d6536b1c9", "fetched_at": "2026-08-28T04:03:27.103204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wj596/go-mysql-transfer"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:55:27.414873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe121f9bb26e7e23f86e3db62f8202a5b382b074a0000133718f218d6536b1c9", "fetched_at": "2026-08-28T04:03:27.103204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wj596/go-mysql-transfer"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:55:27.414873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe121f9bb26e7e23f86e3db62f8202a5b382b074a0000133718f218d6536b1c9", "fetched_at": "2026-08-28T04:03:27.103204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wj596/go-mysql-transfer"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:55:27.414873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe121f9bb26e7e23f86e3db62f8202a5b382b074a0000133718f218d6536b1c9", "fetched_at": "2026-08-28T04:03:27.103204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wj596/go-mysql-transfer"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "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": 2213, "days_push": 1010, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}