# Query Projection

> A technique for maintaining a read model shaped for one query, updated from the writes it depends on.

Record: `lexicon:query-projection`
Kind: technique
Layer: [Execution Core](https://banes-lab.com/records/layer/execution-core.md)
Canonical: https://banes-lab.com/ontology/lexicon#lexicon-query-projection

Listed in [Lexicon terms](https://banes-lab.com/api/records/lexicon.md), after [Workflow Complexity](https://banes-lab.com/records/lexicon/workflow-complexity.md) and before [Introduce Async Event](https://banes-lab.com/records/lexicon/introduce-async-event.md).

## Category

- [Event Messaging Async](https://banes-lab.com/records/lexicon-category/event-messaging-async.md)

## Refactors

- [Synchronous Chain Trap](https://banes-lab.com/records/architecture/synchronous-chain-trap.md)
- [Chatty Interface](https://banes-lab.com/records/architecture/chatty-interface.md)
- [N Plus One Query](https://banes-lab.com/records/architecture/n-plus-one-query.md)
- [Event Sourcing](https://banes-lab.com/records/architecture/event-sourcing.md)
- [Asynchronous Communication](https://banes-lab.com/records/architecture/asynchronous-communication.md)
- [Eventual Consistency](https://banes-lab.com/records/architecture/eventual-consistency.md)

## Linked from

- [Anti-patterns](https://banes-lab.com/ontology/principles/architecture-category-anti-patterns.md)
- [Event / Messaging / Asynchronous Architecture](https://banes-lab.com/ontology/principles/architecture-category-event-messaging-asynchronous-architecture.md)
