---
id: ADR-ACC-PRD-013
title: Shared Table Reads and Durable Migration Handovers
product_area: accounting
module: products
revision: 3
status: proposed
design_intent: proposed
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: Shared readers consume common product tables within workspace policy, while durable migration handovers
  retain Commerce realization context without proving an implemented consumer.
constrains:
- DOM-ACC-PRD-001
- DOM-ACC-PRD-002
- DOM-ACC-PRD-004
- SVC-ACC-PRD-products
- WF-ACC-PRD-006
- RESP-ACC
origin: products-a12-a13 record, Decisions taken in the session 2 (session decision, reversible)
alternatives:
- option: Add separate read operations or events for every consumer.
  why_not: The cited architecture already permits shared-table reads while reserving writes for owners.
- option: Emit a migration message for every former special price.
  why_not: A handover table preserves context without requiring an active message consumer during migration.
consequences:
- Table shapes create reader dependencies whose contracts are still incomplete.
- Without events, readers learn changes through later reads.
supersedes: []
evidence:
- 'services-accounting at f47cb263: docs/migrations/accounting-modernization/products-a12-a13/README.md (Decisions
  taken in the session); docs/migrations/accounting-modernization/products-shared/README.md (cross-schema write
  convention); modules/products/db/pricing-audience-handovers.table.ts.'
---

# Shared Table Reads and Durable Migration Handovers

## Context

Catalogue consumers need data at different moments. The reversible session choice stores special-price handover context in a table.

## Decision

Shared readers consume common product tables within workspace policy, while durable migration handovers retain Commerce realization context without proving an implemented consumer.

## Alternatives Considered

Add separate read operations or events for every consumer. The cited architecture already permits shared-table reads while reserving writes for owners.

Emit a migration message for every former special price. A handover table preserves context without requiring an active message consumer during migration.

## Consequences

Shared schema changes can affect every reader. A realization timestamp does not establish retry safety, alerts or queue delivery.
