Placement Follows the Committed Address Asynchronously
Context
The port originally calculated placement during saving. The recorded product choice moved this work to committed-change processing.
Decision
Address, override and linked-contact handlers share reconciliation. Processing reads policy, then locks eligible records and compares current deciding input with its remembered fingerprint. Those record locks do not supply a consistent policy snapshot.
Alternatives Considered
Calculate the regional value synchronously when saving. The recorded product choice requires post-save processing, and synchronous matching would couple record writes to geographic policy.
Use the address snapshot carried by the event. Older deliveries could apply outdated input; current-state reads avoid that delivery-order dependency.
Consequences
A successful record response does not guarantee that geographic reconciliation has already occurred. Equal deciding fingerprints suppress ordinary duplicate writes, subject to later input changes and policy-read limitations. Queue failures rely on redelivery; exhausted messages need redrive or another applicable trigger. Organization address changes need linked-contact processing because resolved links do not save each contact.