{"adoption": {"forks": 168, "observed_at": "2026-08-28T04:04:55.468849+00:00", "stars": 1508}, "canonical_url": "https://ross.abutalabs.com/products/wal2json", "card": {"archived": false, "artifact_type": "plugin", "description": "JSON output plugin for changeset extraction", "domain": ["databases", "developer-tools"], "enriched": true, "function": ["serialization", "database", "streaming"], "health_score": 86, "homepage": null, "language": "C", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "stable", "member_repos": ["eulerto/wal2json"], "name": "eulerto/wal2json", "platform": ["windows", "self-hosted"], "pushed_at": "2026-08-25T00:09:31+00:00", "repo": "eulerto/wal2json", "stars": 1508, "tags": ["postgresql", "logical-decoding", "cdc", "change-data-capture", "replication", "json", "c", "data-engineering", "linux", "macos"], "topics": ["postgres", "replication", "plugin", "json", "cdc"], "urls": [], "use_cases": ["stream postgres changes as json for cdc", "capture database changes for event-driven pipelines", "replicate postgres data to kafka or other systems", "audit trail of row changes in postgresql", "consume logical replication slots as json"], "what_it_is": "wal2json is a PostgreSQL logical decoding output plugin written in C that converts write-ahead log changes (INSERT, UPDATE, DELETE) into JSON. It supports streaming via logical replication slots or a SQL API, with two output formats (one JSON object per transaction or per tuple).", "when_to_avoid": ["you use a database other than PostgreSQL", "you need non-JSON output formats like Avro or Protobuf", "you run PostgreSQL older than 9.4"], "when_to_choose": ["you need change data capture from PostgreSQL with JSON output", "you want to feed Postgres changes into Debezium, Kafka, or ETL pipelines", "you need access to old row versions on UPDATE/DELETE via replica identity"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/wal2json", "repo": "eulerto/wal2json", "role": "main", "score": 67}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:55.468849+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:32:32.581914+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eef2cb168594fc4c5a223845cc878952298670afc5f4d8a27db3364d6d9f4eb5", "fetched_at": "2026-08-28T04:04:55.468849+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eulerto/wal2json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:55.468849+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:32:32.581914+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eef2cb168594fc4c5a223845cc878952298670afc5f4d8a27db3364d6d9f4eb5", "fetched_at": "2026-08-28T04:04:55.468849+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eulerto/wal2json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:32:32.581914+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eef2cb168594fc4c5a223845cc878952298670afc5f4d8a27db3364d6d9f4eb5", "fetched_at": "2026-08-28T04:04:55.468849+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eulerto/wal2json"}], "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:04:55.468849+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:55.468849+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:55.468849+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:32:32.581914+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eef2cb168594fc4c5a223845cc878952298670afc5f4d8a27db3364d6d9f4eb5", "fetched_at": "2026-08-28T04:04:55.468849+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eulerto/wal2json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:55.468849+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:55.468849+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:32:32.581914+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eef2cb168594fc4c5a223845cc878952298670afc5f4d8a27db3364d6d9f4eb5", "fetched_at": "2026-08-28T04:04:55.468849+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eulerto/wal2json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:55.468849+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:55.468849+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:55.468849+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:32:32.581914+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eef2cb168594fc4c5a223845cc878952298670afc5f4d8a27db3364d6d9f4eb5", "fetched_at": "2026-08-28T04:04:55.468849+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eulerto/wal2json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:55.468849+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:55.468849+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:32:32.581914+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eef2cb168594fc4c5a223845cc878952298670afc5f4d8a27db3364d6d9f4eb5", "fetched_at": "2026-08-28T04:04:55.468849+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eulerto/wal2json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:32:32.581914+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eef2cb168594fc4c5a223845cc878952298670afc5f4d8a27db3364d6d9f4eb5", "fetched_at": "2026-08-28T04:04:55.468849+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eulerto/wal2json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:32:32.581914+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eef2cb168594fc4c5a223845cc878952298670afc5f4d8a27db3364d6d9f4eb5", "fetched_at": "2026-08-28T04:04:55.468849+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eulerto/wal2json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:32:32.581914+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eef2cb168594fc4c5a223845cc878952298670afc5f4d8a27db3364d6d9f4eb5", "fetched_at": "2026-08-28T04:04:55.468849+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eulerto/wal2json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "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": 4578, "days_push": 9, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 67, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}