Commit Compliance Notice Submissions with Status
Context
The approved architecture couples compliance changes with accepted submission pointers. Its bounded storage exception allows CRM to compose the request before committing those pointers.
Decision
Compliance status and accepted notification submission pointers commit together; deduplication keys distinguish organization version and recipient batch; delivery remains Platform’s responsibility and can be blocked or fail after commit.
Alternatives Considered
Queue notice submission only after status commit. That introduces another handoff in which committed compliance can lack its intended submission. The adopted architecture couples the submission pointer to status.
Send directly before the business transaction commits. That can deliver a notice for a compliance change later rolled back.
Consequences
The implementation splits recipients into batches and deduplicates each batch. This provides transactional submission consistency, not exactly-once email delivery. Product wording about one notice per transition still needs a decision that distinguishes submissions and delivery.
Each recipient batch performs a bounded storage request while the transaction is open, with a two-second request timeout and one allowed retry. Rollback can leave a request object without a submission pointer until storage expiry after 30 days. Template configuration and delivery failures do not reverse CRM compliance.