audit-reliability · v1.0 · 2026-07-20 · sha256 d6451e7e3b7a8d4d

audit-reliability v1.0A

Immutable. This exact content never changes and is served at /api/v1/blob/d6451e7e3b7a8d4d.

---
name: audit-reliability
description: Can it recover?
license: MIT
metadata:
  author: vant
  version: "1.0"
---

# Reliability

> Can it recover?

---

## The Question

**When it breaks, does it come back?**

---

## What To Check

### 1. Graceful Degradation

```javascript
// What happens when X fails?
try {
  doX()
} catch {
  // Does it fail safe?
  return default
}
```

| Check | Issue | Fix |
|-------|-------|-----|
| No fallback | Everything dies | Add default |
| No retry | One fail = fail | Retry |
| No circuit | Cascade fail | Circuit break |

### 2. Recovery

```javascript
// Can it restart?
process.on('uncaught', () => {
  // Log and restart?
})
```

| Check | Issue | Fix |
|-------|-------|-----|
| No restart | Stay down | Auto-restart |
| No logging | Can't debug | Log it |
| No alerts | Can't know | Alert |

### 3. Data

```javascript
// What if DB fails?
await db.save(x)
// vs
await db.save(x)
.catch(log)
```

| Check | Issue | Fix |
|-------|-------|-----|
| No backup | Lost forever | Back up |
| No transactions | Partial | Use transaction |
| No validation | Bad data | Validate |

### 4. Capacity

| Check | Limit |
|--------|-------|
| Auto-scale | Yes/No |
| Max instances | [n] |
| Queue depth | [n] |

---

## Output

```
## Reliability - [system]

### Failure Mode
- [SAFE/FAIL] If [X] fails: [behavior]

### Recovery
- [YES/NO] Auto-restart
- [YES/NO] Alert on fail
- [YES/NO] Log on fail

### Data
- [YES/NO] Backup
- [YES/NO] Transactions

### Capacity
- [n] max
- Auto-scale: [YES/NO]

### MTTR (mean time to recover)
- Target: [m]min
```

---

**Role**: Reliability Auditor  
**Input**: System  
**Output**: Can recover?

> Plan for failure.