You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
buffer_platform/openspec/specs/storage-fallback/spec.md

1.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

ADDED Requirements

Requirement: 三级降级策略

系统应当实现 Redis → MySQL → SQLite 的三级降级读取策略,保证系统可用性。

Scenario: 正常模式Redis + MySQL 可用)

  • WHEN Redis 和 MySQL 均可用
  • THEN 系统优先从 Redis 读取,未命中时回源 MySQL

Scenario: Redis 不可用降级

  • WHEN Redis 服务不可用但 MySQL 可用
  • THEN 系统直接从 MySQL 读取数据,跳过 Redis 缓存层

Scenario: Redis 和 MySQL 均不可用降级

  • WHEN Redis 和 MySQL 均不可用
  • THEN 系统降级到 SQLite从 SQLite 读取数据并保证基础服务可用

Requirement: 降级状态检测

系统应当能够检测存储后端的可用性状态,并在降级时输出明确的日志。

Scenario: 启动时降级检测

  • WHEN 应用启动时检测到 Redis 或 MySQL 不可用
  • THEN 系统输出降级警告日志,说明当前使用的存储模式

Scenario: 运行时降级触发

  • WHEN 运行中 Redis 或 MySQL 连接异常
  • THEN 系统自动切换到降级模式,输出降级日志,并继续提供服务

Requirement: 降级恢复

系统应当能够在存储后端恢复后自动恢复到正常模式。

Scenario: Redis 恢复

  • WHEN Redis 从不可用状态恢复
  • THEN 系统自动恢复到 Redis + MySQL 模式,后续读取优先使用 Redis

Scenario: MySQL 恢复

  • WHEN MySQL 从不可用状态恢复
  • THEN 系统自动恢复到 Redis + MySQL 模式SQLite 降级结束