Skip to content

@codesoul-co/hypha-storage / recovery

模块用法

用于处理有界恢复、重试或降级。Recovery 模块公开 2 函数、2 接口、1 类型。

从包入口导入

ts
import {
  adviseStorageRecovery,
  classifyStorageFailure,
} from '@codesoul-co/hypha-storage';

import type {
  StorageFailureContext,
  StorageRecoveryAdvice,
  StorageRecoveryOperation,
} from '@codesoul-co/hypha-storage';

使用要点

  • 3 个类型/接口用于应用代码、Adapter 或测试中的静态契约;请使用 import type,运行时不应依赖它们。
  • 2 个函数是该模块的直接操作入口;每个 overload 的必需/可选参数与返回类型均在下方列出。

公共导出

Symbol种类签名说明
adviseStorageRecovery函数adviseStorageRecovery(failure: RecoveryFailure): StorageRecoveryAdviceAdvise Storage Recovery 函数,提供 1 个公开调用签名;参数与返回类型见下表。
classifyStorageFailure函数classifyStorageFailure(error: unknown, context: StorageFailureContext): RecoveryFailureConverts provider-specific storage errors into the shared recovery contract. Mutations default to an unknown commit state unless a receipt or the caller proves otherwise; this prevents blind replay after an ambiguous disconnect.
StorageFailureContext接口interface StorageFailureContextStorage Failure Context 接口,共包含 17 个公开字段或方法。
StorageRecoveryAdvice接口interface StorageRecoveryAdviceStorage Recovery Advice 接口,共包含 6 个公开字段或方法。
StorageRecoveryOperation类型type StorageRecoveryOperation = 'read' | 'query' | 'list' | 'write' | 'update' | 'delete' | 'transaction_begin' | 'transaction_commit' | 'transaction_rollback' | 'event_append' | 'artifact_write' | 'artifact_delete' | 'lease_acquire' | 'lease_renew' | 'lease_release' | 'snapshot' | 'restore'Storage Recovery Operation 公共类型别名;完整类型表达式见声明。

adviseStorageRecovery

Advise Storage Recovery 函数,提供 1 个公开调用签名;参数与返回类型见下表。

  • 种类: 函数
  • 导入: import { adviseStorageRecovery } from '@codesoul-co/hypha-storage';
  • 源码模块: recovery

声明

text
export declare function adviseStorageRecovery(failure: RecoveryFailure): StorageRecoveryAdvice;

调用签名

text
adviseStorageRecovery(failure: RecoveryFailure): StorageRecoveryAdvice

参数

参数类型必需说明
failureRecoveryFailure必需参数;接受的值由类型列定义。

返回值

  • 类型: StorageRecoveryAdvice
  • 说明: 返回值契约由上述类型定义。

classifyStorageFailure

Converts provider-specific storage errors into the shared recovery contract. Mutations default to an unknown commit state unless a receipt or the caller proves otherwise; this prevents blind replay after an ambiguous disconnect.

  • 种类: 函数
  • 导入: import { classifyStorageFailure } from '@codesoul-co/hypha-storage';
  • 源码模块: recovery

声明

text
export declare function classifyStorageFailure(error: unknown, context: StorageFailureContext): RecoveryFailure;

调用签名

text
classifyStorageFailure(error: unknown, context: StorageFailureContext): RecoveryFailure

Converts provider-specific storage errors into the shared recovery contract. Mutations default to an unknown commit state unless a receipt or the caller proves otherwise; this prevents blind replay after an ambiguous disconnect.

参数

参数类型必需说明
errorunknown必需参数;接受的值由类型列定义。
contextStorageFailureContext必需参数;接受的值由类型列定义。

返回值

  • 类型: RecoveryFailure
  • 说明: 返回值契约由上述类型定义。

StorageFailureContext

Storage Failure Context 接口,共包含 17 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { StorageFailureContext } from '@codesoul-co/hypha-storage';
  • 源码模块: recovery

声明

text
export interface StorageFailureContext {
    id: string;
    operation: StorageRecoveryOperation;
    providerId: string;
    role: StorageRole;
    engine?: StorageEngine;
    resourceKey?: string;
    occurredAt?: string;
    providerRevision?: string;
    specRevision?: string;
    policyRevision?: string;
    expectedRevision?: string | number;
    observedRevision?: string | number;
    idempotencyKey?: string;
    input?: unknown;
    sideEffectState?: RecoverySideEffectState;
    compensationAvailable?: boolean;
    metadata?: Record<string, unknown>;
}

契约成员

成员种类签名说明
compensationAvailable属性compensationAvailable?: boolean公开属性;类型、只读和可选状态以签名列为准。
engine属性engine?: StorageEngine公开属性;类型、只读和可选状态以签名列为准。
expectedRevision属性expectedRevision?: string | number公开属性;类型、只读和可选状态以签名列为准。
id属性id: string公开属性;类型、只读和可选状态以签名列为准。
idempotencyKey属性idempotencyKey?: string公开属性;类型、只读和可选状态以签名列为准。
input属性input?: unknown公开属性;类型、只读和可选状态以签名列为准。
metadata属性metadata?: Record<string, unknown>公开属性;类型、只读和可选状态以签名列为准。
observedRevision属性observedRevision?: string | number公开属性;类型、只读和可选状态以签名列为准。
occurredAt属性occurredAt?: string公开属性;类型、只读和可选状态以签名列为准。
operation属性operation: StorageRecoveryOperation公开属性;类型、只读和可选状态以签名列为准。
policyRevision属性policyRevision?: string公开属性;类型、只读和可选状态以签名列为准。
providerId属性providerId: string公开属性;类型、只读和可选状态以签名列为准。
providerRevision属性providerRevision?: string公开属性;类型、只读和可选状态以签名列为准。
resourceKey属性resourceKey?: string公开属性;类型、只读和可选状态以签名列为准。
role属性role: StorageRole公开属性;类型、只读和可选状态以签名列为准。
sideEffectState属性sideEffectState?: RecoverySideEffectState公开属性;类型、只读和可选状态以签名列为准。
specRevision属性specRevision?: string公开属性;类型、只读和可选状态以签名列为准。

StorageRecoveryAdvice

Storage Recovery Advice 接口,共包含 6 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { StorageRecoveryAdvice } from '@codesoul-co/hypha-storage';
  • 源码模块: recovery

声明

text
export interface StorageRecoveryAdvice {
    strategy: RecoveryStrategy;
    reason: string;
    requireReconciliation: boolean;
    refreshRevisionBeforeRetry: boolean;
    mayUseCompatibleReplica: boolean;
    invalidateDerivedCaches: boolean;
}

契约成员

成员种类签名说明
invalidateDerivedCaches属性invalidateDerivedCaches: boolean公开属性;类型、只读和可选状态以签名列为准。
mayUseCompatibleReplica属性mayUseCompatibleReplica: boolean公开属性;类型、只读和可选状态以签名列为准。
reason属性reason: string公开属性;类型、只读和可选状态以签名列为准。
refreshRevisionBeforeRetry属性refreshRevisionBeforeRetry: boolean公开属性;类型、只读和可选状态以签名列为准。
requireReconciliation属性requireReconciliation: boolean公开属性;类型、只读和可选状态以签名列为准。
strategy属性strategy: "fail" | "retry" | "human_review" | "reconcile" | "fallback" | "degrade" | "compensate" | "wait" | "quarantine" | "cancel"公开属性;类型、只读和可选状态以签名列为准。

StorageRecoveryOperation

Storage Recovery Operation 公共类型别名;完整类型表达式见声明。

  • 种类: 类型
  • 导入: import type { StorageRecoveryOperation } from '@codesoul-co/hypha-storage';
  • 源码模块: recovery

声明

text
export type StorageRecoveryOperation = 'read' | 'query' | 'list' | 'write' | 'update' | 'delete' | 'transaction_begin' | 'transaction_commit' | 'transaction_rollback' | 'event_append' | 'artifact_write' | 'artifact_delete' | 'lease_acquire' | 'lease_renew' | 'lease_release' | 'snapshot' | 'restore';