Reference architecture · Dataverse

A bulk update should be one change, not fifty opportunities to drift.

This architecture addresses a common multi-location failure: a loop updates stores one by one, fails halfway, and leaves the organization unable to prove which locations received the intended configuration.

NAIVE LOOP

Partial success becomes operational ambiguity.

  • Locations update sequentially
  • Inherited settings resolve at different times
  • A mid-run failure leaves mixed state
  • Rollback is manual or incomplete
  • No single identifier describes the change set
ATOMIC CHANGE SET

Validate all, then commit all.

  • Resolve target and inherited settings first
  • Validate every value and relationship
  • Commit in one server-side transaction
  • Stamp one batch identifier across records
  • Either the set commits or rolls back

Resolve

Build the complete affected set, including locations inheriting values from a parent configuration.

Validate

Check permissions, value domains, dependencies, version conflicts, and required records before write.

Commit

Use a Dataverse server-side transactional operation instead of client-side record loops.

Evidence

Record batch ID, actor, source request, affected locations, result, and rollback outcome.

Where it applies

Pricing, promotion, tax, operating hours, service settings, permissions, and other related multi-site configuration.

Human boundary

Approval of material pricing or policy changes, conflict resolution, emergency override, and rollback authority.

Evidence level

This is a published design pattern, not a named client production deployment or measured operational outcome.

Read the full technical pattern →

Similar problem?

Map the change set, inheritance, and failure boundary first.

The same principle applies anywhere a business change crosses many related records or locations.

Map the control problem