{
  "code": null,
  "collection": "architecture",
  "href": "https://banes-lab.com/ontology#architecture-auto-remediation",
  "id": "auto-remediation",
  "kind": "capability",
  "layer": {
    "href": "https://banes-lab.com/ontology/schema#layer-correctness-core",
    "json": "https://banes-lab.com/json/records/layer/correctness-core",
    "label": "Correctness Core",
    "markdown": "https://banes-lab.com/records/layer/correctness-core.md",
    "ref": "layer:correctness-core"
  },
  "name": "Auto-Remediation",
  "ref": "architecture:auto-remediation",
  "relations": [
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-health-signal",
          "json": "https://banes-lab.com/json/records/lexicon/health-signal",
          "label": "Health Signal",
          "markdown": "https://banes-lab.com/records/lexicon/health-signal.md",
          "ref": "lexicon:health-signal"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-remediation-workflow",
          "json": "https://banes-lab.com/json/records/lexicon/remediation-workflow",
          "label": "Remediation Workflow",
          "markdown": "https://banes-lab.com/records/lexicon/remediation-workflow.md",
          "ref": "lexicon:remediation-workflow"
        }
      ],
      "relation": "requires"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology#architecture-self-healing-architecture",
          "json": "https://banes-lab.com/json/records/architecture/self-healing-architecture",
          "label": "Self-Healing Architecture",
          "markdown": "https://banes-lab.com/records/architecture/self-healing-architecture.md",
          "ref": "architecture:self-healing-architecture"
        }
      ],
      "relation": "reinforces"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-incident-reduction",
          "json": "https://banes-lab.com/json/records/lexicon/incident-reduction",
          "label": "Incident Reduction",
          "markdown": "https://banes-lab.com/records/lexicon/incident-reduction.md",
          "ref": "lexicon:incident-reduction"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-reduced-mean-time-to-recovery",
          "json": "https://banes-lab.com/json/records/lexicon/reduced-mean-time-to-recovery",
          "label": "Reduced Mean Time to Recovery",
          "markdown": "https://banes-lab.com/records/lexicon/reduced-mean-time-to-recovery.md",
          "ref": "lexicon:reduced-mean-time-to-recovery"
        }
      ],
      "relation": "enables"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology#architecture-manual-runbook-dependency",
          "json": "https://banes-lab.com/json/records/architecture/manual-runbook-dependency",
          "label": "Manual Runbook Dependency",
          "markdown": "https://banes-lab.com/records/architecture/manual-runbook-dependency.md",
          "ref": "architecture:manual-runbook-dependency"
        }
      ],
      "relation": "conflicts-with"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-unsafe-automation",
          "json": "https://banes-lab.com/json/records/lexicon/unsafe-automation",
          "label": "Unsafe Automation",
          "markdown": "https://banes-lab.com/records/lexicon/unsafe-automation.md",
          "ref": "lexicon:unsafe-automation"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-manual-remediation",
          "json": "https://banes-lab.com/json/records/lexicon/manual-remediation",
          "label": "Manual Remediation",
          "markdown": "https://banes-lab.com/records/lexicon/manual-remediation.md",
          "ref": "lexicon:manual-remediation"
        }
      ],
      "relation": "tensions-with"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/schema#tension-auto-remediation-unsafe-automation",
          "json": "https://banes-lab.com/json/records/tension/auto-remediation-unsafe-automation",
          "label": "Auto-Remediation / Unsafe Automation",
          "markdown": "https://banes-lab.com/records/tension/auto-remediation-unsafe-automation.md",
          "ref": "tension:auto-remediation-unsafe-automation"
        },
        {
          "href": "https://banes-lab.com/ontology/schema#tension-auto-remediation-manual-remediation",
          "json": "https://banes-lab.com/json/records/tension/auto-remediation-manual-remediation",
          "label": "Auto-Remediation / Manual Remediation",
          "markdown": "https://banes-lab.com/records/tension/auto-remediation-manual-remediation.md",
          "ref": "tension:auto-remediation-manual-remediation"
        }
      ],
      "relation": "tensions"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology#architecture-manual-runbook-dependency",
          "json": "https://banes-lab.com/json/records/architecture/manual-runbook-dependency",
          "label": "Manual Runbook Dependency",
          "markdown": "https://banes-lab.com/records/architecture/manual-runbook-dependency.md",
          "ref": "architecture:manual-runbook-dependency"
        }
      ],
      "relation": "violated-by"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-automate-the-runbook",
          "json": "https://banes-lab.com/json/records/lexicon/automate-the-runbook",
          "label": "Automate the Runbook",
          "markdown": "https://banes-lab.com/records/lexicon/automate-the-runbook.md",
          "ref": "lexicon:automate-the-runbook"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-guardrails",
          "json": "https://banes-lab.com/json/records/lexicon/guardrails",
          "label": "Guardrails",
          "markdown": "https://banes-lab.com/records/lexicon/guardrails.md",
          "ref": "lexicon:guardrails"
        }
      ],
      "relation": "refactored-by"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/schema#vocabulary-severity-contextual",
          "json": "https://banes-lab.com/json/records/vocabulary/severity-contextual",
          "label": "contextual",
          "markdown": "https://banes-lab.com/records/vocabulary/severity-contextual.md",
          "ref": "vocabulary:severity-contextual"
        }
      ],
      "relation": "severity"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology#architecture-category-self-healing-recovery-deployment-safety",
          "json": "https://banes-lab.com/json/records/architecture-category/self-healing-recovery-deployment-safety",
          "label": "Self-Healing / Recovery / Deployment Safety",
          "markdown": "https://banes-lab.com/records/architecture-category/self-healing-recovery-deployment-safety.md",
          "ref": "architecture-category:self-healing-recovery-deployment-safety"
        }
      ],
      "relation": "category"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/disciplined-methodology/build#detect-log-fix",
          "json": "https://banes-lab.com/json/disciplined-methodology/build/detect-log-fix",
          "label": "Detect, log, fix",
          "markdown": "https://banes-lab.com/disciplined-methodology/build/detect-log-fix.md",
          "ref": "chapter:/disciplined-methodology/build#detect-log-fix"
        },
        {
          "href": "https://banes-lab.com/software-architecture/coverage#the-honest-gaps",
          "json": "https://banes-lab.com/json/software-architecture/coverage/the-honest-gaps",
          "label": "The honest gaps",
          "markdown": "https://banes-lab.com/software-architecture/coverage/the-honest-gaps.md",
          "ref": "chapter:/software-architecture/coverage#the-honest-gaps"
        },
        {
          "href": "https://banes-lab.com/software-architecture/scale#the-author-is-probabilistic",
          "json": "https://banes-lab.com/json/software-architecture/scale/the-author-is-probabilistic",
          "label": "The author is probabilistic",
          "markdown": "https://banes-lab.com/software-architecture/scale/the-author-is-probabilistic.md",
          "ref": "chapter:/software-architecture/scale#the-author-is-probabilistic"
        },
        {
          "href": "https://banes-lab.com/software-architecture/scale#scale-follows-determinism",
          "json": "https://banes-lab.com/json/software-architecture/scale/scale-follows-determinism",
          "label": "Scale follows determinism",
          "markdown": "https://banes-lab.com/software-architecture/scale/scale-follows-determinism.md",
          "ref": "chapter:/software-architecture/scale#scale-follows-determinism"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-anti-patterns",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-anti-patterns",
          "label": "Anti-patterns",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-anti-patterns.md",
          "ref": "chapter:/ontology#architecture-category-anti-patterns"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-self-healing-recovery-deployment-safety",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-self-healing-recovery-deployment-safety",
          "label": "Self-Healing / Recovery / Deployment Safety",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-self-healing-recovery-deployment-safety.md",
          "ref": "chapter:/ontology#architecture-category-self-healing-recovery-deployment-safety"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-category-model-architecture",
          "json": "https://banes-lab.com/json/ontology/lexicon/lexicon-category-model-architecture",
          "label": "Model Architecture",
          "markdown": "https://banes-lab.com/ontology/lexicon/lexicon-category-model-architecture.md",
          "ref": "chapter:/ontology/lexicon#lexicon-category-model-architecture"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-category-self-healing-recovery-deployment-safety",
          "json": "https://banes-lab.com/json/ontology/lexicon/lexicon-category-self-healing-recovery-deployment-safety",
          "label": "Self-Healing / Recovery / Deployment Safety",
          "markdown": "https://banes-lab.com/ontology/lexicon/lexicon-category-self-healing-recovery-deployment-safety.md",
          "ref": "chapter:/ontology/lexicon#lexicon-category-self-healing-recovery-deployment-safety"
        },
        {
          "href": "https://banes-lab.com/ontology/schema#the-vocabulary-severity",
          "json": "https://banes-lab.com/json/ontology/schema/the-vocabulary-severity",
          "label": "Severity levels",
          "markdown": "https://banes-lab.com/ontology/schema/the-vocabulary-severity.md",
          "ref": "chapter:/ontology/schema#the-vocabulary-severity"
        },
        {
          "href": "https://banes-lab.com/ontology/schema#the-resolutions",
          "json": "https://banes-lab.com/json/ontology/schema/the-resolutions",
          "label": "The resolutions",
          "markdown": "https://banes-lab.com/ontology/schema/the-resolutions.md",
          "ref": "chapter:/ontology/schema#the-resolutions"
        }
      ],
      "relation": "linked-from"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/governance#file-governance-codemods-selectors-codemod-selector-ts",
          "json": "https://banes-lab.com/json/source/governance/codemods/selectors/codemod.selector.ts",
          "label": "applyCodemod",
          "markdown": "https://banes-lab.com/source/governance/codemods/selectors/codemod.selector.ts.md",
          "ref": "anatomy:file-governance-codemods-selectors-codemod-selector-ts"
        }
      ],
      "relation": "evidence"
    }
  ],
  "summary": "The ability to run a guarded, automated response, such as a restart, a reset and replay or a compaction, when an alert or a health signal shows a failure whose fix is known.",
  "siblings": {
    "next": {
      "href": "https://banes-lab.com/ontology#architecture-rollback",
      "json": "https://banes-lab.com/json/records/architecture/rollback",
      "label": "Rollback",
      "markdown": "https://banes-lab.com/records/architecture/rollback.md",
      "ref": "architecture:rollback"
    },
    "previous": {
      "href": "https://banes-lab.com/ontology#architecture-auto-scaling",
      "json": "https://banes-lab.com/json/records/architecture/auto-scaling",
      "label": "Auto-Scaling",
      "markdown": "https://banes-lab.com/records/architecture/auto-scaling.md",
      "ref": "architecture:auto-scaling"
    }
  },
  "up": {
    "href": null,
    "json": "https://banes-lab.com/json/api/records/architecture",
    "label": "Architecture principles",
    "markdown": "https://banes-lab.com/api/records/architecture.md",
    "ref": "api:records/architecture"
  },
  "aliases": [
    "Autonomous Recovery"
  ],
  "exemplar": {
    "after": "alert.on(\"FooDiskFull\", async event => {\n  await fooStorage.compact(event.volumeId);\n  await fooStorage.verify(event.volumeId);\n});",
    "before": "alert.on(\"FooDiskFull\", pageOnCall);",
    "lang": "ts",
    "medium": "code"
  },
  "formedBy": null,
  "scope": [
    "runtime",
    "service",
    "infrastructure"
  ],
  "severity": "contextual"
}
