解释何时选择优雅降级,其权衡、前提条件、警示信号和可行替代方案。本参考定义了采纳边界、失败行为和可观察证据,同时允许配置环境特定的限制。
**包状态:**参考上下文已准备好供人工审查。合同和测试场景已完成,但不保证采纳实现已通过它们。
决策
对于优雅降级,采纳一项记录的架构决策,包含拥有的接口和依赖方向。在实施开始前,记录选择、驱动因素、前提条件、替代方案、权衡、可逆性和失效信号。本包为参考合同:采纳团队必须根据自身环境中的证据选择数值限制、提供者、司法管辖区和运营所有者。
范围
- 本决策块描述的优雅降级参与者、输入、输出、状态、策略或模式版本及外部可见结果。
- 主要和备用接口、后台工作、缓存、集成、支持路径及可行使相同边界的证据。
- 为安全应用参考所需的采纳特定配置、发布、恢复和验证职责。
本块之外
- 为每个采纳者选择通用供应商、框架、司法管辖区、数值阈值、保留期限或服务级别目标。
- 声称已在下游实现上运行打包场景,或本参考授予法律、安全或无障碍认证。
合同
- 指明决策驱动因素、替代方案、约束、可逆性及使所选结构失效的条件。
- 在每个边界分配数据、行为、接口、部署和运营所有权;共享代码不消除所有权。
- 仅允许文档中指定方向的依赖,并交换稳定合同而非其他组件的内部模型。
- 为每个远程或异步边界定义超时、容量、一致性、降级、部署、迁移和恢复行为。
- 将选择绑定于观察到的规模和组织约束,而非时尚或假设的未来负载。
- 指明最小可逆实验,以减少最大剩余不确定性。
- 按关键性排序能力,并为每个依赖、资源或功能失败定义有界的降级模式,且不削弱身份验证、授权、完整性或必需同意。
- 向用户和运营者发出降级行为信号,防止陈旧或部分数据被视为权威,并测试入口、持续运行、调和和自动恢复。
实施指导
- 针对相同驱动因素评估可行替代方案,保留被拒选项及其理由和复审触发条件。
- 在选择框架或供应商细节前,建模优雅降级的输入、输出、参与者、状态、不变量、副作用和证据。
- 将适用的优雅降级合同或策略版本与重要状态一起存储,以便迁移、重放和支持决策可追溯。
- 通过受控发布引入路径,比较预期与观察结果,并保持经过测试的恢复路径,直至采纳证据完整。
失败处理和保障措施
- 边界失败保持受控,产生稳定的调用者结果,并有经过测试的回滚或前向恢复路径。
- 无效或矛盾的优雅降级状态被拒绝或隔离;实现绝不猜测会扩大权限或重复效果的值。
- 重试有界且使用持久身份;耗尽后,工作达到可检查的终态,并有责任所有者。
验证和运营
- 在代表性实现切片后及每当失效信号跨越约定边界时复审决策。
- 按合同版本监控优雅降级的成功、拒绝、验证失败、依赖失败、重试耗尽和恢复,且不包含敏感负载维度。
- 在策略、模式、依赖、迁移或边界变更后重新运行正负配对的测试夹具,并保留结果证据。
采纳假设
- 示例中的名称和值为具体夹具,非通用默认;采纳者通过文档证据和所有权替换它们。
- 采纳系统能提供认证身份、持久操作或记录版本、有界遥测和受控变更路径。
本包中看似可执行的示例为夹具和验收合同。运行集合验证器检查结构和元数据,然后在目标仓库中翻译并执行场景,最后记录实现证据。