通信

通信流程

在软件构建过程中,不可重现性一直是困扰开发者的难题。Athens 旨在解决这一问题,其存储机制尤为关键。

空存储状态

初始状态下,Athens 代理的存储为空。

用户在此阶段发出请求时,工作方式如下图所示:

  • 用户运行 go get 来获取新模块。
  • Go CLI 联系 Athens 代理,请求模块 M,版本 v1.0。
  • Athens 代理检查其存储中是否存在此模块?不存在。
  • Athens 代理从底层 VCS 下载代码并将其转换为 Go 模块格式。
  • 收到所有数据后,代理将其存储到自己的存储中并提供给用户。
  • 用户成功获取模块。

整个过程为同步流程。

空存储状态通信流程 空存储状态通信流程

Happy Path

此刻 Athens 代理已知晓模块 M 的 v1.0 版本,可立即将该模块提供给用户,无需再从 VCS 获取。

新代理通信流程 新代理通信流程

Fork me on GitHub