Hasty Briefsbeta

What is the go proxy even doing?

10 days ago
  • #Distributed Systems
  • #Mercurial
  • #Go Proxy
  • The Go module proxy caches requests to ensure a consistent and reliable experience for users, but it may contribute to upstream host instability.
  • The proxy repeatedly downloads modules, including complete hg clones, even when new versions are unlikely to be found.
  • The author's server limits the Go proxy to one clone per repo per 24 hours, returning a 429 status for excess requests.
  • Logs show frequent, concurrent clone requests from multiple machines, leading to a 'thundering herd' problem.
  • The proxy's design causes inefficiency by not sharing updates internally, instead hammering the upstream source.
  • Despite the inefficiency, updates do propagate quickly through the proxy once a new tag is pushed.