{"adoption": {"forks": 140, "observed_at": "2026-08-28T04:05:06.762675+00:00", "stars": 1579}, "canonical_url": "https://ross.abutalabs.com/products/getdozer-dozer", "card": {"archived": false, "artifact_type": "application", "description": "Dozer is a real-time data movement tool that leverages CDC from various sources and moves data into various sinks. ", "domain": ["databases", "analytics", "big-data"], "enriched": true, "function": ["etl", "streaming", "database", "data-science"], "health_score": 25, "homepage": "https://getdozer.io", "language": "Rust", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["getdozer/dozer"], "name": "getdozer/dozer", "platform": ["self-hosted", "rust", "cli"], "pushed_at": "2024-06-18T22:23:39+00:00", "repo": "getdozer/dozer", "stars": 1579, "tags": ["cdc", "change-data-capture", "data-pipeline", "real-time", "data-warehouse", "clickhouse", "postgres", "snowflake", "debezium-alternative", "low-code", "data-engineering", "linux", "macos", "docker"], "topics": ["apis", "data", "rust", "sql", "realtime", "streaming", "etl", "low-code", "postgres", "snowflake", "api", "clickhouse", "datawarehouse", "debe"], "urls": [], "use_cases": ["stream postgres changes to clickhouse in real time", "cdc data pipeline without kafka", "sync mysql database to a data warehouse", "move data from s3 into bigquery continuously", "build real-time data apis on top of a warehouse", "replace debezium with a faster data replication tool", "low-code etl configured with a single yaml file"], "what_it_is": "Dozer is a real-time data movement tool written in Rust that captures change data (CDC) from sources like Postgres, MySQL, Snowflake, and Kafka and streams it into sinks such as ClickHouse, BigQuery, and data warehouses. It is configured via a single YAML file and claims to be significantly faster than a Debezium+Kafka pipeline.", "when_to_avoid": ["you need batch-only ETL with complex transformations rather than CDC streaming", "you require Oracle or Aerospike connectors, which are enterprise-only", "you need connectors with fully supported resuming for MongoDB, S3, or GCS, which are still incomplete", "your sources or sinks are not on the supported list"], "when_to_choose": ["you need low-latency, real-time replication from operational databases into warehouses or analytics stores", "you want a simpler, faster alternative to a Debezium + Kafka stack", "your sources and sinks are among the supported ones (Postgres, MySQL, Snowflake, Kafka, MongoDB, S3, GCS into ClickHouse, Postgres, MySQL, BigQuery)"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/getdozer-dozer", "repo": "getdozer/dozer", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.762675+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:56:43.549975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5f1a18743e041728f7865610f9c4f9ce2a0d76b94e4bc3e86e4776273f67a4e", "fetched_at": "2026-08-28T04:05:06.762675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/getdozer/dozer"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.762675+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:56:43.549975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5f1a18743e041728f7865610f9c4f9ce2a0d76b94e4bc3e86e4776273f67a4e", "fetched_at": "2026-08-28T04:05:06.762675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/getdozer/dozer"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:56:43.549975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5f1a18743e041728f7865610f9c4f9ce2a0d76b94e4bc3e86e4776273f67a4e", "fetched_at": "2026-08-28T04:05:06.762675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/getdozer/dozer"}], "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:05:06.762675+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.762675+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.762675+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:56:43.549975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5f1a18743e041728f7865610f9c4f9ce2a0d76b94e4bc3e86e4776273f67a4e", "fetched_at": "2026-08-28T04:05:06.762675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/getdozer/dozer"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.762675+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.762675+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:56:43.549975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5f1a18743e041728f7865610f9c4f9ce2a0d76b94e4bc3e86e4776273f67a4e", "fetched_at": "2026-08-28T04:05:06.762675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/getdozer/dozer"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.762675+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.762675+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.762675+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:56:43.549975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5f1a18743e041728f7865610f9c4f9ce2a0d76b94e4bc3e86e4776273f67a4e", "fetched_at": "2026-08-28T04:05:06.762675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/getdozer/dozer"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.762675+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:06.762675+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:56:43.549975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5f1a18743e041728f7865610f9c4f9ce2a0d76b94e4bc3e86e4776273f67a4e", "fetched_at": "2026-08-28T04:05:06.762675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/getdozer/dozer"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:56:43.549975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5f1a18743e041728f7865610f9c4f9ce2a0d76b94e4bc3e86e4776273f67a4e", "fetched_at": "2026-08-28T04:05:06.762675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/getdozer/dozer"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:56:43.549975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5f1a18743e041728f7865610f9c4f9ce2a0d76b94e4bc3e86e4776273f67a4e", "fetched_at": "2026-08-28T04:05:06.762675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/getdozer/dozer"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:56:43.549975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5f1a18743e041728f7865610f9c4f9ce2a0d76b94e4bc3e86e4776273f67a4e", "fetched_at": "2026-08-28T04:05:06.762675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/getdozer/dozer"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "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": 1463, "days_push": 806, "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}}