总体架构

Passport 由 3 个应用、11 个服务、3 个 worker、4 个共享库组成;对外只有两个 HTTP 边界,其余一切通信走 NATS。

用户管理员三方应用passport_web(Next.js SSR)admin_web(Vite React)apps/openapi(OAuth + 资源 API)api_service(内部管理 HTTP 边界)业务服务 (NestJS)NATSrequest-reply / JetStreamworkers (Vite)数据库 HTTPSHTTPSHTTPSSSR 服务端调用HTTPS内部调用JetStream 事件流发布结果事件

设计原则

  • 业务服务不暴露 HTTP:所有服务间调用走 NATS request-reply;api_service 是唯一的内部 HTTP 边界并覆盖全部服务接口。
  • service → worker 只走流:工作通过 JetStream 事件投递,worker 是异步消费者,不服务任何同步请求;worker 落库自己消费的结果。
  • 敏感中间态不出所属服务:OTP、验证码、尝试状态、支付敏感数据一律以不透明工单(Ticket)传递,回源校验消费。
  • 配置按子项目隔离:每个子项目独立 .env,根目录只做组织与共享配置。