From a very high-level view, there are 3 major components of the system.
The client is a user, powered by go binary with module support. At the moment of writing this document, it is Go v1.12+.
VCS is an external source of data for Athens. Athens scans various VCSs such as
github.com and fetches sources from there.
We intend proxies to be deployed primarily inside of enterprises to:
Importantly, a proxy is not intended to be a complete mirror of an upstream proxy. For public modules, its role is to store and provide access control.