Skip to content

Data Access Boundary

Stable ID: component.data-access
Kind: shared-component
Status: stable
Source: skill/references/shared-components/data-access.md

Purpose

Isolate persistence protocols, queries, transactions, and mapping from domain decisions.

Use when

  • Domain behaviour should not depend on a database client.
  • Multiple storage implementations or tests need a stable port.
  • Transaction and consistency rules need one owner.

Avoid when

  • A thin script performs one obvious query with no domain layer.
  • A repository abstraction would only mirror every table operation.

Applicability

  • Languages: any, python, q-kdbplus, cpp, rust, dart-flutter, typescript
  • Related entries: pattern.repository, decision.repository-vs-adapter