---
id: ADR-PFM-NOT-006
title: The Request Object Is Written Inside the Caller's Transaction
product_area: platform
module: notifications
revision: 1
status: proposed
design_intent: confirmed
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: The communication helper makes a bounded request-object write before inserting the committed
  pointer within the caller’s transaction.
constrains:
- WF-PFM-NOT-010
- SVC-PFM-NOT-communications
- DOM-PFM-NOT-005
origin: Andrew 2026-10-10, services-platform:docs/communications/architecture.md#18.12 One S3 write inside
  the caller's transaction (Andrew, 2026-10-10)
alternatives:
- option: Build the request before the transaction opens
  why_not: Writing before business decisions finish can preserve content that disagrees with the eventual
    committed action.
consequences:
- A storage timeout fails the producer transaction rather than leaving an unbounded wait.
- Rollback can leave an orphan request object that expires after thirty days.
- Platform receipt doors store the object before opening their own short database transaction.
supersedes: []
evidence:
- 'services-platform at ad3f6a65: docs/communications/architecture.md §18.12; docs/queued-work.md §5;
  docs/jobs.md §4.'
---
# The Request Object Is Written Inside the Caller's Transaction

## Context

Association requests need external storage, but their dispatch eligibility must follow the producer’s transaction.

## Decision

The communication helper makes a bounded request-object write before inserting the committed pointer within the caller’s transaction.

## Alternatives Considered

Writing before business decisions finish can preserve content that disagrees with the eventual committed action.

## Consequences

A storage timeout fails the producer transaction rather than leaving an unbounded wait. Rollback can leave an orphan request object that expires after thirty days. Platform receipt doors store the object before opening their own short database transaction.
