{
  "code": null,
  "collection": "architecture",
  "href": "https://banes-lab.com/ontology#architecture-latency",
  "id": "latency",
  "kind": "metric",
  "layer": {
    "href": "https://banes-lab.com/ontology/schema#layer-performance-core",
    "json": "https://banes-lab.com/json/records/layer/performance-core",
    "label": "Performance Core",
    "markdown": "https://banes-lab.com/records/layer/performance-core.md",
    "ref": "layer:performance-core"
  },
  "name": "Latency",
  "ref": "architecture:latency",
  "relations": [
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-time-budget",
          "json": "https://banes-lab.com/json/records/lexicon/time-budget",
          "label": "Time Budget",
          "markdown": "https://banes-lab.com/records/lexicon/time-budget.md",
          "ref": "lexicon:time-budget"
        }
      ],
      "relation": "requires"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-user-experience",
          "json": "https://banes-lab.com/json/records/lexicon/user-experience",
          "label": "User Experience",
          "markdown": "https://banes-lab.com/records/lexicon/user-experience.md",
          "ref": "lexicon:user-experience"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-performance-engineering",
          "json": "https://banes-lab.com/json/records/architecture/performance-engineering",
          "label": "Performance Engineering",
          "markdown": "https://banes-lab.com/records/architecture/performance-engineering.md",
          "ref": "architecture:performance-engineering"
        }
      ],
      "relation": "reinforces"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-responsiveness",
          "json": "https://banes-lab.com/json/records/lexicon/responsiveness",
          "label": "Responsiveness",
          "markdown": "https://banes-lab.com/records/lexicon/responsiveness.md",
          "ref": "lexicon:responsiveness"
        }
      ],
      "relation": "enables"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-long-blocking-work",
          "json": "https://banes-lab.com/json/records/lexicon/long-blocking-work",
          "label": "Long Blocking Work",
          "markdown": "https://banes-lab.com/records/lexicon/long-blocking-work.md",
          "ref": "lexicon:long-blocking-work"
        }
      ],
      "relation": "conflicts-with"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-throughput-batching",
          "json": "https://banes-lab.com/json/records/lexicon/throughput-batching",
          "label": "Throughput/Batching",
          "markdown": "https://banes-lab.com/records/lexicon/throughput-batching.md",
          "ref": "lexicon:throughput-batching"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-total-order-broadcast",
          "json": "https://banes-lab.com/json/records/architecture/total-order-broadcast",
          "label": "Total-Order Broadcast",
          "markdown": "https://banes-lab.com/records/architecture/total-order-broadcast.md",
          "ref": "architecture:total-order-broadcast"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-cap-theorem",
          "json": "https://banes-lab.com/json/records/architecture/cap-theorem",
          "label": "CAP Theorem",
          "markdown": "https://banes-lab.com/records/architecture/cap-theorem.md",
          "ref": "architecture:cap-theorem"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-consensus",
          "json": "https://banes-lab.com/json/records/architecture/consensus",
          "label": "Consensus",
          "markdown": "https://banes-lab.com/records/architecture/consensus.md",
          "ref": "architecture:consensus"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-message-queue",
          "json": "https://banes-lab.com/json/records/architecture/message-queue",
          "label": "Message Queue",
          "markdown": "https://banes-lab.com/records/architecture/message-queue.md",
          "ref": "architecture:message-queue"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-throughput",
          "json": "https://banes-lab.com/json/records/architecture/throughput",
          "label": "Throughput",
          "markdown": "https://banes-lab.com/records/architecture/throughput.md",
          "ref": "architecture:throughput"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-consistency",
          "json": "https://banes-lab.com/json/records/architecture/consistency",
          "label": "Consistency",
          "markdown": "https://banes-lab.com/records/architecture/consistency.md",
          "ref": "architecture:consistency"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-pessimistic-locking",
          "json": "https://banes-lab.com/json/records/architecture/pessimistic-locking",
          "label": "Pessimistic Locking",
          "markdown": "https://banes-lab.com/records/architecture/pessimistic-locking.md",
          "ref": "architecture:pessimistic-locking"
        },
        {
          "href": "https://banes-lab.com/ontology/schema#tension-latency-total-order-broadcast",
          "json": "https://banes-lab.com/json/records/tension/latency-total-order-broadcast",
          "label": "Total-Order Broadcast / Latency",
          "markdown": "https://banes-lab.com/records/tension/latency-total-order-broadcast.md",
          "ref": "tension:latency-total-order-broadcast"
        },
        {
          "href": "https://banes-lab.com/ontology/schema#tension-cap-theorem-latency",
          "json": "https://banes-lab.com/json/records/tension/cap-theorem-latency",
          "label": "CAP Theorem / Latency",
          "markdown": "https://banes-lab.com/records/tension/cap-theorem-latency.md",
          "ref": "tension:cap-theorem-latency"
        },
        {
          "href": "https://banes-lab.com/ontology/schema#tension-consensus-latency",
          "json": "https://banes-lab.com/json/records/tension/consensus-latency",
          "label": "Consensus / Latency",
          "markdown": "https://banes-lab.com/records/tension/consensus-latency.md",
          "ref": "tension:consensus-latency"
        },
        {
          "href": "https://banes-lab.com/ontology/schema#tension-latency-message-queue",
          "json": "https://banes-lab.com/json/records/tension/latency-message-queue",
          "label": "Message Queue / Latency",
          "markdown": "https://banes-lab.com/records/tension/latency-message-queue.md",
          "ref": "tension:latency-message-queue"
        },
        {
          "href": "https://banes-lab.com/ontology/schema#tension-latency-throughput",
          "json": "https://banes-lab.com/json/records/tension/latency-throughput",
          "label": "Throughput / Latency",
          "markdown": "https://banes-lab.com/records/tension/latency-throughput.md",
          "ref": "tension:latency-throughput"
        },
        {
          "href": "https://banes-lab.com/ontology/schema#tension-consistency-latency",
          "json": "https://banes-lab.com/json/records/tension/consistency-latency",
          "label": "Consistency / Latency",
          "markdown": "https://banes-lab.com/records/tension/consistency-latency.md",
          "ref": "tension:consistency-latency"
        },
        {
          "href": "https://banes-lab.com/ontology/schema#tension-latency-pessimistic-locking",
          "json": "https://banes-lab.com/json/records/tension/latency-pessimistic-locking",
          "label": "Pessimistic Locking / Latency",
          "markdown": "https://banes-lab.com/records/tension/latency-pessimistic-locking.md",
          "ref": "tension:latency-pessimistic-locking"
        }
      ],
      "relation": "tensions-with"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/schema#tension-latency-throughput-batching",
          "json": "https://banes-lab.com/json/records/tension/latency-throughput-batching",
          "label": "Latency / Throughput/Batching",
          "markdown": "https://banes-lab.com/records/tension/latency-throughput-batching.md",
          "ref": "tension:latency-throughput-batching"
        }
      ],
      "relation": "tensions"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-long-blocking-work",
          "json": "https://banes-lab.com/json/records/lexicon/long-blocking-work",
          "label": "Long Blocking Work",
          "markdown": "https://banes-lab.com/records/lexicon/long-blocking-work.md",
          "ref": "lexicon:long-blocking-work"
        }
      ],
      "relation": "violated-by"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology#architecture-caching",
          "json": "https://banes-lab.com/json/records/architecture/caching",
          "label": "Caching",
          "markdown": "https://banes-lab.com/records/architecture/caching.md",
          "ref": "architecture:caching"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-introduce-async-event",
          "json": "https://banes-lab.com/json/records/lexicon/introduce-async-event",
          "label": "Introduce Async Event",
          "markdown": "https://banes-lab.com/records/lexicon/introduce-async-event.md",
          "ref": "lexicon:introduce-async-event"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-add-index",
          "json": "https://banes-lab.com/json/records/lexicon/add-index",
          "label": "Add Index",
          "markdown": "https://banes-lab.com/records/lexicon/add-index.md",
          "ref": "lexicon:add-index"
        }
      ],
      "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-scalability-performance-optimization",
          "json": "https://banes-lab.com/json/records/architecture-category/scalability-performance-optimization",
          "label": "Scalability / Performance / Optimization",
          "markdown": "https://banes-lab.com/records/architecture-category/scalability-performance-optimization.md",
          "ref": "architecture-category:scalability-performance-optimization"
        }
      ],
      "relation": "category"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology#architecture-pacelc-theorem",
          "json": "https://banes-lab.com/json/records/architecture/pacelc-theorem",
          "label": "PACELC Theorem",
          "markdown": "https://banes-lab.com/records/architecture/pacelc-theorem.md",
          "ref": "architecture:pacelc-theorem"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-cdn-edge-caching",
          "json": "https://banes-lab.com/json/records/architecture/cdn-edge-caching",
          "label": "CDN / Edge Caching",
          "markdown": "https://banes-lab.com/records/architecture/cdn-edge-caching.md",
          "ref": "architecture:cdn-edge-caching"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-queuing-theory",
          "json": "https://banes-lab.com/json/records/architecture/queuing-theory",
          "label": "Queuing Theory",
          "markdown": "https://banes-lab.com/records/architecture/queuing-theory.md",
          "ref": "architecture:queuing-theory"
        }
      ],
      "relation": "reinforced-by"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/ontology#architecture-category-causality-ordering-distributed-time",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-causality-ordering-distributed-time",
          "label": "Causality / Ordering / Distributed Time",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-causality-ordering-distributed-time.md",
          "ref": "chapter:/ontology#architecture-category-causality-ordering-distributed-time"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-control-coordination-centralization",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-control-coordination-centralization",
          "label": "Control / Coordination / Centralization",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-control-coordination-centralization.md",
          "ref": "chapter:/ontology#architecture-category-control-coordination-centralization"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-event-messaging-asynchronous-architecture",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-event-messaging-asynchronous-architecture",
          "label": "Event / Messaging / Asynchronous Architecture",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-event-messaging-asynchronous-architecture.md",
          "ref": "chapter:/ontology#architecture-category-event-messaging-asynchronous-architecture"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-model-architecture",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-model-architecture",
          "label": "Model Architecture",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-model-architecture.md",
          "ref": "chapter:/ontology#architecture-category-model-architecture"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-scalability-performance-optimization",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-scalability-performance-optimization",
          "label": "Scalability / Performance / Optimization",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-scalability-performance-optimization.md",
          "ref": "chapter:/ontology#architecture-category-scalability-performance-optimization"
        },
        {
          "href": "https://banes-lab.com/ontology#architecture-category-transactions-state-concurrency",
          "json": "https://banes-lab.com/json/ontology/principles/architecture-category-transactions-state-concurrency",
          "label": "Transactions / State / Concurrency",
          "markdown": "https://banes-lab.com/ontology/principles/architecture-category-transactions-state-concurrency.md",
          "ref": "chapter:/ontology#architecture-category-transactions-state-concurrency"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-category-core-vocabulary",
          "json": "https://banes-lab.com/json/ontology/lexicon/lexicon-category-core-vocabulary",
          "label": "Core Vocabulary",
          "markdown": "https://banes-lab.com/ontology/lexicon/lexicon-category-core-vocabulary.md",
          "ref": "chapter:/ontology/lexicon#lexicon-category-core-vocabulary"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-category-event-messaging-async",
          "json": "https://banes-lab.com/json/ontology/lexicon/lexicon-category-event-messaging-async",
          "label": "Event Messaging Async",
          "markdown": "https://banes-lab.com/ontology/lexicon/lexicon-category-event-messaging-async.md",
          "ref": "chapter:/ontology/lexicon#lexicon-category-event-messaging-async"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-category-quality-attributes",
          "json": "https://banes-lab.com/json/ontology/lexicon/lexicon-category-quality-attributes",
          "label": "Quality Attributes",
          "markdown": "https://banes-lab.com/ontology/lexicon/lexicon-category-quality-attributes.md",
          "ref": "chapter:/ontology/lexicon#lexicon-category-quality-attributes"
        },
        {
          "href": "https://banes-lab.com/ontology/lexicon#lexicon-category-scalability-performance-optimization",
          "json": "https://banes-lab.com/json/ontology/lexicon/lexicon-category-scalability-performance-optimization",
          "label": "Scalability / Performance / Optimization",
          "markdown": "https://banes-lab.com/ontology/lexicon/lexicon-category-scalability-performance-optimization.md",
          "ref": "chapter:/ontology/lexicon#lexicon-category-scalability-performance-optimization"
        },
        {
          "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"
    }
  ],
  "summary": "A measure of the time between a request and its response, usually reported at percentiles.",
  "siblings": {
    "next": {
      "href": "https://banes-lab.com/ontology#architecture-performance-engineering",
      "json": "https://banes-lab.com/json/records/architecture/performance-engineering",
      "label": "Performance Engineering",
      "markdown": "https://banes-lab.com/records/architecture/performance-engineering.md",
      "ref": "architecture:performance-engineering"
    },
    "previous": {
      "href": "https://banes-lab.com/ontology#architecture-throughput",
      "json": "https://banes-lab.com/json/records/architecture/throughput",
      "label": "Throughput",
      "markdown": "https://banes-lab.com/records/architecture/throughput.md",
      "ref": "architecture:throughput"
    }
  },
  "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": [],
  "exemplar": {
    "after": "async function renderFoo(id: FooId) {\n  const foo = await fooStore.find(id);\n  const [bar, baz] = await Promise.all([\n    barStore.find(foo.barId),\n    bazStore.find(foo.bazId),\n  ]);\n  return render(foo, bar, baz);\n}",
    "before": "async function renderFoo(id: FooId) {\n  const foo = await fooStore.find(id);\n  const bar = await barStore.find(foo.barId);\n  const baz = await bazStore.find(foo.bazId);\n  return render(foo, bar, baz);\n}",
    "lang": "ts",
    "medium": "code"
  },
  "formedBy": null,
  "scope": [
    "API",
    "service",
    "user flow"
  ],
  "severity": "contextual"
}
