architecture decision

ADR-006: Centralize payment status in a read model

Payment status queries use a read model owned by PaymentService instead of querying gateway and fraud systems directly.

Decision RecordJune 18, 2024AcceptedRead model

Context

Customer support and checkout screens need a consistent payment status. Reading across payment gateway, fraud, and local transaction state creates inconsistent answers during retries.

Decision

PaymentService owns a payment status read model updated from payment, gateway, and fraud events. Clients read status through GetPaymentStatus.

Consequences

Clients get a stable query contract and avoid provider-specific logic. The read model must expose freshness metadata so support teams can understand delayed updates.