ADR / 001

Make ERP customer creation asynchronous

Protect the commercial workflow from ERP latency while making pending state and recovery explicit.

Fictional scenario

Independently created. Contains no employer or client implementation detail, internal names or figures.

01Context

A global B2B organization requires financial validation in ERP before the first order, but customer approval in CRM must remain usable during ERP maintenance or regional latency.

02Decision drivers

  1. D01

    No false duplicate creation after timeout

  2. D02

    Commercial users need a legible status

  3. D03

    ERP remains authority for legal customer ID

  4. D04

    Operations need replay and auditability

03Options considered

Rejected

Synchronous API

Immediate, low-volume workflows

Cost: Couples UX to ERP availability
Selected

Managed asynchronous command

Variable latency and recoverable operations

Cost: Requires explicit pending state
Rejected

Nightly batch

Non-urgent bulk onboarding

Cost: Poor process feedback

04Decision

Publish an idempotent CustomerCreationRequested command after approval. The integration layer validates, submits to ERP, persists correlation state and returns outcome events to CRM.

05Consequences

  • The CRM exposes Pending, Created and Intervention required states.
  • Support owns a replay queue with reason codes; users never re-click creation blindly.
  • Downstream order entry is gated on the canonical ERP identifier.

06Revisit when

01

ERP offers a highly available idempotent endpoint with deterministic response times.

02

The business accepts that approval and legal creation become one atomic user action.

07Where this decision is applied

Cases that take this decision, and why it matters there.

  1. Architecture case / 001Designing a CRM–ERP customer lifecycleA premise-led architecture for a fictional global B2B company: from commercial intent to legally valid, operationally recoverable customer.Systems & CRM ArchitectureData & IntegrationsProcess ArchitectureFictional scenario · 18 min
  2. Systems case / 05Designing customer identity across CRM and ERPSeparating commercial, legal and transactional identity—and governing how they map, merge and retire across CRM and ERP.Systems & CRM ArchitectureData & IntegrationsProcess ArchitectureFictional scenario · 9 min