# Salesforce Integration Architecture

Task: ARCH-SALESFORCE-INTEGRATION-DIAGRAM

## Source Mode

`source-free`

No visual source reference was provided. The diagram is validated against this
contract rather than against a source screenshot.

## Architecture Contract

- Audience: architect and delivery team reviewing integration boundaries.
- Systems:
  - Experience Cloud as the user-facing portal.
  - Salesforce Core as CRM and business process system of record.
  - MuleSoft as API orchestration and integration broker.
  - Data 360 as customer data unification and profile/segment layer.
  - S3 bucket as file repository/object storage.
  - Payment Gateway as external payment processor.
- Required relationships:
  - Users access Experience Cloud.
  - Experience Cloud invokes Salesforce services for portal workflows.
  - Salesforce publishes and consumes APIs through MuleSoft.
  - MuleSoft coordinates payment calls with the payment gateway.
  - MuleSoft coordinates file upload/download metadata and object operations
    with S3.
  - Salesforce and Data 360 exchange customer/profile data.
  - MuleSoft can feed integration events into Data 360 when needed.
- Visual requirements:
  - Clear trust/system boundaries.
  - Orthogonal connectors with arrowheads on target edges.
  - No text overflow.
  - Composite containers grow around their child nodes with visible padding.
  - External services are visually distinct from Salesforce platform services.

## Architect Result

The Architect decision recorded through Orchestra:

> Use a layered integration architecture with Salesforce core, Experience Cloud
> frontend, MuleSoft integration layer, Data 360 data layer, S3 file repository,
> and payment gateway external service.

## Validation Notes

- All requested systems are present.
- Salesforce platform services are grouped together.
- External services are grouped separately.
- MuleSoft sits between Salesforce and external dependencies.
- Connectors are orthogonal and terminate at visible target edges.
- Parent containers have padding around child nodes and labels.
- The rendered SVG was reflowed after label placement so connector labels sit in
  clear lanes and parent containers still contain their children after sizing
  changes.
