Files
vigilcare-clinical/docs/resilience/climate/README.md
T
2026-06-24 04:35:15 +08:00

40 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Climate Resilience Chaos Experiments
Six intentional failure injections validating Phases 2023 ward gateway architecture.
Methodology follows the six-step loop: BASELINE → HYPOTHESIS → BREAK → OBSERVE → FIX → VERIFY.
| # | Experiment | Break | Success criterion | Automation |
|---|---|---|---|---|
| 1 | Central API down 30 min | Stop central API container/process | Local critical alert + ack on gateway; zero central observations during outage | Manual + `ward-outage-reconnect-01` |
| 2 | Network partition mid-batch | `docker network disconnect` during sync upload | Partial retry; no duplicate observations on central | `scripts/demo-network-partition.sh` |
| 3 | Kafka down during sync apply | `docker stop kafka` before batch process; restart after | Observations in PostgreSQL; `outbox_pending_events` drops after Kafka up | Grafana |
| 4 | Duplicate batch re-upload | POST same `batchReference` twice | Second returns existing batch id; one set of rows | `ClinicalSyncBatchTests` |
| 5 | Ack before alert in batch | Construct batch with ack before alert item | `CONFLICT` + `ALERT_NOT_YET_SYNCED`; reorder retry succeeds | `ClinicalSyncBatchTests` |
| 6 | Gateway restart with buffer | `docker restart ward-gateway-api` before sync completes | Buffered items survive in gateway DB; sync resumes | Manual |
## Artifact sets
Each experiment has four files dated `YYYY-MM-DD-<scenario>-{baseline.json,broken.md,fixed.json,learned.md}`.
| Experiment | Date run | Status |
|---|---|---|
| 1 — central-down | 2026-06-24 | Complete |
| 2 — partition-mid-batch | 2026-06-24 | Complete |
| 3 — kafka-down-sync | 2026-06-24 | Complete |
| 4 — duplicate-batch | 2026-06-24 | Complete (integration test) |
| 5 — ack-before-alert | 2026-06-24 | Complete (integration test) |
| 6 — gateway-restart-buffer | 2026-06-24 | Complete |
## Grafana panels to watch
- `ward_gateways_offline_gauge`
- `ward_gateway_buffer_depth`
- `clinical_sync_batches_total`
- `outbox_pending_events`
- `alerts_unacknowledged_gauge`
## Related scripts
- `./scripts/demo-network-partition.sh`
- `./scripts/run-phase24-verification.sh`