{
  "code": null,
  "collection": "algorithms-domain",
  "href": "https://banes-lab.com/ontology/algorithms#algorithms-domain-architectural-rules",
  "id": "architectural-rules",
  "kind": "domain",
  "layer": null,
  "name": "Architectural Rules",
  "ref": "algorithms-domain:architectural-rules",
  "relations": [
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-shortcuts",
          "json": "https://banes-lab.com/json/records/algorithms/no-shortcuts",
          "label": "Constraints Over Shortcuts",
          "markdown": "https://banes-lab.com/records/algorithms/no-shortcuts.md",
          "ref": "algorithms:no-shortcuts"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-backward-compat",
          "json": "https://banes-lab.com/json/records/algorithms/no-backward-compat",
          "label": "Forward Compatibility Over Backward Compatibility",
          "markdown": "https://banes-lab.com/records/algorithms/no-backward-compat.md",
          "ref": "algorithms:no-backward-compat"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-fallback",
          "json": "https://banes-lab.com/json/records/algorithms/no-fallback",
          "label": "Fail-Fast Over Fallback",
          "markdown": "https://banes-lab.com/records/algorithms/no-fallback.md",
          "ref": "algorithms:no-fallback"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-deprecation",
          "json": "https://banes-lab.com/json/records/algorithms/no-deprecation",
          "label": "Explicit Removal Over Deprecation",
          "markdown": "https://banes-lab.com/records/algorithms/no-deprecation.md",
          "ref": "algorithms:no-deprecation"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-legacy",
          "json": "https://banes-lab.com/json/records/algorithms/no-legacy",
          "label": "Greenfield Over Legacy",
          "markdown": "https://banes-lab.com/records/algorithms/no-legacy.md",
          "ref": "algorithms:no-legacy"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-dual-path",
          "json": "https://banes-lab.com/json/records/algorithms/no-dual-path",
          "label": "Single-Path Determinism Over Dual-Path",
          "markdown": "https://banes-lab.com/records/algorithms/no-dual-path.md",
          "ref": "algorithms:no-dual-path"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-deferring",
          "json": "https://banes-lab.com/json/records/algorithms/no-deferring",
          "label": "Immediacy Over Deferring",
          "markdown": "https://banes-lab.com/records/algorithms/no-deferring.md",
          "ref": "algorithms:no-deferring"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-optional",
          "json": "https://banes-lab.com/json/records/algorithms/no-optional",
          "label": "Mandatory Over Optional",
          "markdown": "https://banes-lab.com/records/algorithms/no-optional.md",
          "ref": "algorithms:no-optional"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-for-now",
          "json": "https://banes-lab.com/json/records/algorithms/no-for-now",
          "label": "Now Over For-Now",
          "markdown": "https://banes-lab.com/records/algorithms/no-for-now.md",
          "ref": "algorithms:no-for-now"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-unobserved",
          "json": "https://banes-lab.com/json/records/algorithms/no-unobserved",
          "label": "Observed Execution Over Unobserved",
          "markdown": "https://banes-lab.com/records/algorithms/no-unobserved.md",
          "ref": "algorithms:no-unobserved"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-uncompressed",
          "json": "https://banes-lab.com/json/records/algorithms/no-uncompressed",
          "label": "Compression Over Repetition",
          "markdown": "https://banes-lab.com/records/algorithms/no-uncompressed.md",
          "ref": "algorithms:no-uncompressed"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-unapproved",
          "json": "https://banes-lab.com/json/records/algorithms/no-unapproved",
          "label": "Approved Evolution Over Unapproved",
          "markdown": "https://banes-lab.com/records/algorithms/no-unapproved.md",
          "ref": "algorithms:no-unapproved"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-ignored-feedback",
          "json": "https://banes-lab.com/json/records/algorithms/no-ignored-feedback",
          "label": "Enforced Feedback Over Ignored",
          "markdown": "https://banes-lab.com/records/algorithms/no-ignored-feedback.md",
          "ref": "algorithms:no-ignored-feedback"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-shared-ownership",
          "json": "https://banes-lab.com/json/records/algorithms/no-shared-ownership",
          "label": "Single Owner Over Shared Ownership",
          "markdown": "https://banes-lab.com/records/algorithms/no-shared-ownership.md",
          "ref": "algorithms:no-shared-ownership"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-unbounded",
          "json": "https://banes-lab.com/json/records/algorithms/no-unbounded",
          "label": "Bounded Lifetime Over Unbounded",
          "markdown": "https://banes-lab.com/records/algorithms/no-unbounded.md",
          "ref": "algorithms:no-unbounded"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-asymmetric",
          "json": "https://banes-lab.com/json/records/algorithms/no-asymmetric",
          "label": "Enforced Symmetry Over Asymmetric Lifecycle",
          "markdown": "https://banes-lab.com/records/algorithms/no-asymmetric.md",
          "ref": "algorithms:no-asymmetric"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-implicit-retention",
          "json": "https://banes-lab.com/json/records/algorithms/no-implicit-retention",
          "label": "Explicit Retention Over Implicit",
          "markdown": "https://banes-lab.com/records/algorithms/no-implicit-retention.md",
          "ref": "algorithms:no-implicit-retention"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-discipline-release",
          "json": "https://banes-lab.com/json/records/algorithms/no-discipline-release",
          "label": "Structural Release Over Discipline",
          "markdown": "https://banes-lab.com/records/algorithms/no-discipline-release.md",
          "ref": "algorithms:no-discipline-release"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-mutable",
          "json": "https://banes-lab.com/json/records/algorithms/no-mutable",
          "label": "Immutable Data Over Mutable State",
          "markdown": "https://banes-lab.com/records/algorithms/no-mutable.md",
          "ref": "algorithms:no-mutable"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-silent",
          "json": "https://banes-lab.com/json/records/algorithms/no-silent",
          "label": "Errors As Language Over Silent Errors",
          "markdown": "https://banes-lab.com/records/algorithms/no-silent.md",
          "ref": "algorithms:no-silent"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-hidden-invalidity",
          "json": "https://banes-lab.com/json/records/algorithms/no-hidden-invalidity",
          "label": "Explicit Invalidity Over Hidden",
          "markdown": "https://banes-lab.com/records/algorithms/no-hidden-invalidity.md",
          "ref": "algorithms:no-hidden-invalidity"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-callbacks",
          "json": "https://banes-lab.com/json/records/algorithms/no-callbacks",
          "label": "Event Emission Over Parent Callbacks",
          "markdown": "https://banes-lab.com/records/algorithms/no-callbacks.md",
          "ref": "algorithms:no-callbacks"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-retraction",
          "json": "https://banes-lab.com/json/records/algorithms/no-retraction",
          "label": "Monotonic Growth Over Retraction",
          "markdown": "https://banes-lab.com/records/algorithms/no-retraction.md",
          "ref": "algorithms:no-retraction"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-location",
          "json": "https://banes-lab.com/json/records/algorithms/no-location",
          "label": "Semantic Addressing Over Location Addressing",
          "markdown": "https://banes-lab.com/records/algorithms/no-location.md",
          "ref": "algorithms:no-location"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-timestamps",
          "json": "https://banes-lab.com/json/records/algorithms/no-timestamps",
          "label": "Ordinal Time Over Timestamps",
          "markdown": "https://banes-lab.com/records/algorithms/no-timestamps.md",
          "ref": "algorithms:no-timestamps"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-separation",
          "json": "https://banes-lab.com/json/records/algorithms/no-separation",
          "label": "Homoiconicity Over Separation",
          "markdown": "https://banes-lab.com/records/algorithms/no-separation.md",
          "ref": "algorithms:no-separation"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-unlimited",
          "json": "https://banes-lab.com/json/records/algorithms/no-unlimited",
          "label": "Bounded Complexity Over Unlimited",
          "markdown": "https://banes-lab.com/records/algorithms/no-unlimited.md",
          "ref": "algorithms:no-unlimited"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-metrics",
          "json": "https://banes-lab.com/json/records/algorithms/no-metrics",
          "label": "Computed Health Over Metric Health",
          "markdown": "https://banes-lab.com/records/algorithms/no-metrics.md",
          "ref": "algorithms:no-metrics"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-hardcoded-secrets",
          "json": "https://banes-lab.com/json/records/algorithms/no-hardcoded-secrets",
          "label": "Secret Store Over Hardcoded Secrets",
          "markdown": "https://banes-lab.com/records/algorithms/no-hardcoded-secrets.md",
          "ref": "algorithms:no-hardcoded-secrets"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-unvalidated-input",
          "json": "https://banes-lab.com/json/records/algorithms/no-unvalidated-input",
          "label": "Boundary Validation Over Unvalidated Input",
          "markdown": "https://banes-lab.com/records/algorithms/no-unvalidated-input.md",
          "ref": "algorithms:no-unvalidated-input"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-broad-privilege",
          "json": "https://banes-lab.com/json/records/algorithms/no-broad-privilege",
          "label": "Least Privilege Over Broad Privilege",
          "markdown": "https://banes-lab.com/records/algorithms/no-broad-privilege.md",
          "ref": "algorithms:no-broad-privilege"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-env-fallback",
          "json": "https://banes-lab.com/json/records/algorithms/no-env-fallback",
          "label": "Config Externalization Over Env Fallback",
          "markdown": "https://banes-lab.com/records/algorithms/no-env-fallback.md",
          "ref": "algorithms:no-env-fallback"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-unmeasured-optimization",
          "json": "https://banes-lab.com/json/records/algorithms/no-unmeasured-optimization",
          "label": "Profile-First Over Unmeasured Optimization",
          "markdown": "https://banes-lab.com/records/algorithms/no-unmeasured-optimization.md",
          "ref": "algorithms:no-unmeasured-optimization"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-convention-enforcement",
          "json": "https://banes-lab.com/json/records/algorithms/no-convention-enforcement",
          "label": "Rule As Code Over Convention",
          "markdown": "https://banes-lab.com/records/algorithms/no-convention-enforcement.md",
          "ref": "algorithms:no-convention-enforcement"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-implicit-contract",
          "json": "https://banes-lab.com/json/records/algorithms/no-implicit-contract",
          "label": "Design By Contract Over Implicit Contract",
          "markdown": "https://banes-lab.com/records/algorithms/no-implicit-contract.md",
          "ref": "algorithms:no-implicit-contract"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-breaking-change",
          "json": "https://banes-lab.com/json/records/algorithms/no-breaking-change",
          "label": "Versioned Evolution Over Breaking Change",
          "markdown": "https://banes-lab.com/records/algorithms/no-breaking-change.md",
          "ref": "algorithms:no-breaking-change"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-untyped-boundary",
          "json": "https://banes-lab.com/json/records/algorithms/no-untyped-boundary",
          "label": "Schema-Validated Boundary Over Untyped",
          "markdown": "https://banes-lab.com/records/algorithms/no-untyped-boundary.md",
          "ref": "algorithms:no-untyped-boundary"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-partial-commit",
          "json": "https://banes-lab.com/json/records/algorithms/no-partial-commit",
          "label": "Atomic Boundary Over Partial Commit",
          "markdown": "https://banes-lab.com/records/algorithms/no-partial-commit.md",
          "ref": "algorithms:no-partial-commit"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-distributed-2pc",
          "json": "https://banes-lab.com/json/records/algorithms/no-distributed-2pc",
          "label": "Saga Compensation Over Distributed 2PC",
          "markdown": "https://banes-lab.com/records/algorithms/no-distributed-2pc.md",
          "ref": "algorithms:no-distributed-2pc"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-sync-cross-boundary",
          "json": "https://banes-lab.com/json/records/algorithms/no-sync-cross-boundary",
          "label": "Async Events Over Synchronous Cross-Boundary",
          "markdown": "https://banes-lab.com/records/algorithms/no-sync-cross-boundary.md",
          "ref": "algorithms:no-sync-cross-boundary"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-opaque-runtime",
          "json": "https://banes-lab.com/json/records/algorithms/no-opaque-runtime",
          "label": "Observable Signals Over Opaque Runtime",
          "markdown": "https://banes-lab.com/records/algorithms/no-opaque-runtime.md",
          "ref": "algorithms:no-opaque-runtime"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-hidden-dependency",
          "json": "https://banes-lab.com/json/records/algorithms/no-hidden-dependency",
          "label": "Injected Dependency Over Hidden",
          "markdown": "https://banes-lab.com/records/algorithms/no-hidden-dependency.md",
          "ref": "algorithms:no-hidden-dependency"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-hardcoded-wiring",
          "json": "https://banes-lab.com/json/records/algorithms/no-hardcoded-wiring",
          "label": "Convention Discovery Over Hardcoded Wiring",
          "markdown": "https://banes-lab.com/records/algorithms/no-hardcoded-wiring.md",
          "ref": "algorithms:no-hardcoded-wiring"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-imperative-config",
          "json": "https://banes-lab.com/json/records/algorithms/no-imperative-config",
          "label": "Declarative Config Over Imperative",
          "markdown": "https://banes-lab.com/records/algorithms/no-imperative-config.md",
          "ref": "algorithms:no-imperative-config"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-leaky-context",
          "json": "https://banes-lab.com/json/records/algorithms/no-leaky-context",
          "label": "Anti-Corruption Layer Over Cross-Context Leak",
          "markdown": "https://banes-lab.com/records/algorithms/no-leaky-context.md",
          "ref": "algorithms:no-leaky-context"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-hidden-nondeterminism",
          "json": "https://banes-lab.com/json/records/algorithms/no-hidden-nondeterminism",
          "label": "Injected Nondeterminism Over Hidden",
          "markdown": "https://banes-lab.com/records/algorithms/no-hidden-nondeterminism.md",
          "ref": "algorithms:no-hidden-nondeterminism"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-no-speculative-pattern",
          "json": "https://banes-lab.com/json/records/algorithms/no-speculative-pattern",
          "label": "Pattern By Fit Over Speculative Pattern",
          "markdown": "https://banes-lab.com/records/algorithms/no-speculative-pattern.md",
          "ref": "algorithms:no-speculative-pattern"
        }
      ],
      "relation": "contracts"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/software-architecture/decay#never-and-always",
          "json": "https://banes-lab.com/json/software-architecture/decay/never-and-always",
          "label": "Never and always",
          "markdown": "https://banes-lab.com/software-architecture/decay/never-and-always.md",
          "ref": "chapter:/software-architecture/decay#never-and-always"
        },
        {
          "href": "https://banes-lab.com/ontology/algorithms#algorithms-domain-architectural-rules",
          "json": "https://banes-lab.com/json/ontology/algorithms/algorithms-domain-architectural-rules",
          "label": "Architectural Rules",
          "markdown": "https://banes-lab.com/ontology/algorithms/algorithms-domain-architectural-rules.md",
          "ref": "chapter:/ontology/algorithms#algorithms-domain-architectural-rules"
        }
      ],
      "relation": "linked-from"
    }
  ],
  "summary": "The Architectural Rules domain holds 47 algorithm contracts.",
  "siblings": {
    "next": {
      "href": "https://banes-lab.com/ontology/algorithms#algorithms-domain-automation",
      "json": "https://banes-lab.com/json/records/algorithms-domain/automation",
      "label": "Automation",
      "markdown": "https://banes-lab.com/records/algorithms-domain/automation.md",
      "ref": "algorithms-domain:automation"
    },
    "previous": {
      "href": "https://banes-lab.com/ontology/algorithms#algorithms-domain-architectural-clusters",
      "json": "https://banes-lab.com/json/records/algorithms-domain/architectural-clusters",
      "label": "Architectural Clusters",
      "markdown": "https://banes-lab.com/records/algorithms-domain/architectural-clusters.md",
      "ref": "algorithms-domain:architectural-clusters"
    }
  },
  "up": {
    "href": null,
    "json": "https://banes-lab.com/json/api/records/algorithms-domain",
    "label": "Algorithm domains",
    "markdown": "https://banes-lab.com/api/records/algorithms-domain.md",
    "ref": "api:records/algorithms-domain"
  }
}
