用途
该技能面向 Node.js 与 NestJS 后端微服务的构建与扩展,适用于以下场景:构建或扩展现有 Node.js 与 NestJS 服务;新增 API 端点、异步消费者或领域工作流;提升服务可靠性、可观测性或部署安全性。
主要能力与工作流
技能规定了一套先契约后实现的工作流:
- 定义限界上下文与服务归属,包括依赖关系。
- 在实现之前先定义 API 或事件契约。
- 将业务逻辑实现于面向领域的模块中,而非控制器内。
- 加入校验、认证与授权钩子、幂等性以及错误映射。
- 加入遥测能力(结构化日志、指标、追踪),并携带关联 ID。
- 通过单元、集成、契约与故障模式测试进行验证。
运行时护栏
- 超时与重试必须是显式且有界的。
- 外部调用需具备熔断或降级行为。
- 异步处理需具备死信与重放策略。
- 配置与密钥通过环境边界注入。
- 健康检查需反映依赖健康状态,而非仅进程存活探测。
必需检查项
- API 兼容性与弃用策略已文档化。
- Schema 迁移可逆,或采用双读/双写安全方案。
- 关键端点的 P95 延迟与错误预算已知。
- 事件分诊说明包含仪表盘、日志与回滚命令。
决策框架
- 若端点为客户关键路径,则要求明确的 SLO、重试预算与熔断策略。
- 若处理为异步,则发布前必须要求死信与重放策略。
- 若 Schema 变更为非平凡变更,则要求采用 expand-migrate-contract 或双读/双写方案。
- 若服务依赖多个外部依赖,则每个依赖类别均需具备降级行为。
常见合理化说辞与反驳
- “幂等性可以以后再补。”——生产环境必然发生重试;现在就强制实现幂等性。
- “健康检查通过就意味着就绪。”——存活不等于就绪;需包含依赖感知的探针。
- “默认重试一切。”——无界重试会放大故障;应定义重试预算。
证据包
- API 契约产物与兼容性说明。
- 超时与依赖中断场景的故障模式测试输出。
- 包含回滚命令序列的 Runbook 片段。
- 展示延迟/错误基线的可观测性快照。
退出标准
- 新的后端行为可测试且有契约支撑。
- 部分中断下故障处理是确定性的。
- 服务具备足够的运维元数据以支持 on-call。
限制
资料未提供具体代码示例、安装命令、配置细节、价格或收费方式,相关事实暂未提供。