Create or replace a product with its owned settings
What It Does
The products API writes the local catalogue record and its owned lists in one transaction. When confirmation content changes, it calls Platform independently before reading the saved response and committing Accounting.
The Flow
When Something Fails
Validation and database failures preserve the preceding local state. Remote handling and response-read failures also abort Accounting, but cannot roll back a Platform change already committed. No workflow retry or compensation closes that gap. The product lock stays held while the remote call completes.
Open Design Questions
Product must assign recovery ownership for mismatched templates and records and choose the intended omission contract across HTTP and domain writes.