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.