我的golang项目有很多个不同的模块,如下文所示 1. project-management模块(下文简称 项目模块) 保存所有外部项目的各种详情信息 2. work-procedure模块(下文简称 工单模块) 负责整个项目的工单流程管理 1. 项目详情填写工单 用于项目创建时,第一版项目详情的 2. 项目详情修改工单 用于修改项目的详情 3. 用户注册工单 用于处理用户注册流程 4. 微服务更新工单 用于追踪管理跨公网项目的微服务更新流程 3. exchange-hub模块(下文简称 交互模块) 对外交互的模块,负责与所有外部项目之间的通信交互,指令下发与信息回复收集 4. deliver-update模块(下文简称 微服务模块) 微服务更新模块,管理外部项目的业务微服务更新流程,更新记录 5. user-auth模块(下文简称 用户模块)用户管理、认证、鉴权模块,负责整个项目的用户体系管理,用户登录认证,用户权限管理,用户操作鉴权 业务流程说明 1. 项目填写流程 1. 超级管理员填写项目基本信息,分派给项目填写人 2. 项目填写人填写项目信息 3. 项目填写人提交项目信息给超级管理员审核 4. 超级管理员审核项目信息 5. 超级管理员审批通过 6. 正式发布进行访问权限分配 2. 项目修改流程 1. 被超级管理员分配项目查看权限的用户,下文简称用户 2. 用户可以编辑项目信息 3. 用户可以发起修改工单 4. 用户可以在超级管理员审批之前 撤销修改工单 5. 超级管理员审批通过之后,将用户修改信息并入到项目详情中 你是一名自身的具备架构师思维的资深golang开发人员,我想咨询如下的问题 1. 项目模块调用工单模块,但是工单状态和项目详情的状态是有对应关系的,工单模块应该如何将状态信息同步给项目模块 2. 项目模块具备项目授权功能,需要通过交互模块下发信息,同样交互模块如何将信息回传给项目模块 3. golang中如何处理循环依赖的关系