{"adoption": {"forks": 390, "observed_at": "2026-08-28T04:05:43.489507+00:00", "stars": 1846}, "canonical_url": "https://ross.abutalabs.com/products/nginx-upsync-module", "card": {"archived": false, "artifact_type": "plugin", "description": "For http protocol. nginx-upsync-module, sync upstreams from consul or etcd and so on, dynamiclly modify backend-servers attributes(weight, max_fails, down...), needn't reload nginx", "domain": ["web-development", "microservices"], "enriched": true, "function": ["configuration-management", "middleware"], "health_score": 20, "homepage": null, "language": "C", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["weibocom/nginx-upsync-module"], "name": "weibocom/nginx-upsync-module", "platform": [], "pushed_at": "2023-04-07T11:45:25+00:00", "repo": "weibocom/nginx-upsync-module", "stars": 1846, "tags": ["nginx-module", "consul", "etcd", "dynamic-upstream", "service-discovery", "c", "load-balancing", "devops", "nginx", "linux", "web-server"], "topics": [], "urls": [], "use_cases": ["dynamically update nginx upstream servers without reload", "sync backend server list from consul to nginx", "scale nginx backends up and down without restarting", "modify nginx upstream weights at runtime", "avoid nginx reload under high traffic", "service discovery for nginx load balancing"], "what_it_is": "An Nginx C module that dynamically syncs upstream server lists from Consul or etcd, allowing live modification of backend server attributes like weight and max_fails without reloading Nginx. It avoids the performance cost of restarting Nginx under high load.", "when_to_avoid": ["you use a TCP/stream (L4) proxy instead of HTTP - use nginx-stream-upsync-module", "you prefer a control-plane like OpenResty or an API gateway for dynamic routing", "you need a maintained module with an explicit license"], "when_to_choose": ["you need zero-downtime upstream changes in nginx", "your infrastructure uses consul or etcd for service discovery", "reloading nginx under load causes performance degradation"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/nginx-upsync-module", "repo": "weibocom/nginx-upsync-module", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.489507+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:17:53.642593+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "96fa10bd701d61a79313346bb10e8ba751c9691318134942c7ed5254810daca4", "fetched_at": "2026-08-28T04:05:43.489507+00:00", "kind": "readme", "missing": false, "url": "https://github.com/weibocom/nginx-upsync-module"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.489507+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:17:53.642593+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "96fa10bd701d61a79313346bb10e8ba751c9691318134942c7ed5254810daca4", "fetched_at": "2026-08-28T04:05:43.489507+00:00", "kind": "readme", "missing": false, "url": "https://github.com/weibocom/nginx-upsync-module"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:17:53.642593+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "96fa10bd701d61a79313346bb10e8ba751c9691318134942c7ed5254810daca4", "fetched_at": "2026-08-28T04:05:43.489507+00:00", "kind": "readme", "missing": false, "url": "https://github.com/weibocom/nginx-upsync-module"}], "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:43.489507+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.489507+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.489507+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:17:53.642593+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "96fa10bd701d61a79313346bb10e8ba751c9691318134942c7ed5254810daca4", "fetched_at": "2026-08-28T04:05:43.489507+00:00", "kind": "readme", "missing": false, "url": "https://github.com/weibocom/nginx-upsync-module"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.489507+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.489507+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:17:53.642593+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "96fa10bd701d61a79313346bb10e8ba751c9691318134942c7ed5254810daca4", "fetched_at": "2026-08-28T04:05:43.489507+00:00", "kind": "readme", "missing": false, "url": "https://github.com/weibocom/nginx-upsync-module"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.489507+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.489507+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.489507+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:17:53.642593+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "96fa10bd701d61a79313346bb10e8ba751c9691318134942c7ed5254810daca4", "fetched_at": "2026-08-28T04:05:43.489507+00:00", "kind": "readme", "missing": false, "url": "https://github.com/weibocom/nginx-upsync-module"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.489507+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:43.489507+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:17:53.642593+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "96fa10bd701d61a79313346bb10e8ba751c9691318134942c7ed5254810daca4", "fetched_at": "2026-08-28T04:05:43.489507+00:00", "kind": "readme", "missing": false, "url": "https://github.com/weibocom/nginx-upsync-module"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:17:53.642593+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "96fa10bd701d61a79313346bb10e8ba751c9691318134942c7ed5254810daca4", "fetched_at": "2026-08-28T04:05:43.489507+00:00", "kind": "readme", "missing": false, "url": "https://github.com/weibocom/nginx-upsync-module"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:17:53.642593+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "96fa10bd701d61a79313346bb10e8ba751c9691318134942c7ed5254810daca4", "fetched_at": "2026-08-28T04:05:43.489507+00:00", "kind": "readme", "missing": false, "url": "https://github.com/weibocom/nginx-upsync-module"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:17:53.642593+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "96fa10bd701d61a79313346bb10e8ba751c9691318134942c7ed5254810daca4", "fetched_at": "2026-08-28T04:05:43.489507+00:00", "kind": "readme", "missing": false, "url": "https://github.com/weibocom/nginx-upsync-module"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4003, "days_push": 1244, "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}}