# Message Queue

Record: `arch:message-queue`
Kind: mechanism
Layer: [Execution Core](https://banes-lab.com/records/layer/execution-core.md)
Severity: contextual
Scope: integration, async processing
Canonical: https://banes-lab.com/ontology#arch-message-queue

## Repair

- Refactored by: Introduce Queue, Add Worker
- Detected by: synchronous blocking chains for async work
- Violated by: unbounded in-memory work queues
- Measured by: queue depth, retry/dead-letter rates
- Enforced by: infrastructure policy, load tests

## requires

- [Message Contract](https://banes-lab.com/records/lex/message-contract.md)
- [Consumer](https://banes-lab.com/records/lex/consumer.md)

## reinforces

- [Resilience](https://banes-lab.com/records/arch/resilience.md)
- [Backpressure](https://banes-lab.com/records/arch/backpressure.md)

## enables

- [Asynchronous Processing](https://banes-lab.com/records/lex/asynchronous-processing.md)

## conflicts-with

- [In-Memory Direct Invocation](https://banes-lab.com/records/lex/in-memory-direct-invocation.md)

## tensions-with

- [Latency](https://banes-lab.com/records/arch/latency.md)

## tensions

- [Message Queue Latency](https://banes-lab.com/records/tension/latency-message-queue.md)

## referenced-by

- [Dead-Letter Queue](https://banes-lab.com/records/arch/dead-letter-queue.md)
- [Competing Consumers](https://banes-lab.com/records/arch/competing-consumers.md)
