Back to Blog

Technical Appendix: Museum Mobile Architecture with AWS, Shopify & Salesforce

CTRL+SHIFT ConsultingJanuary 7, 20254 min read

Technical Appendix

Museum Mobile Architecture with AWS, Shopify & Salesforce

This is the Technical Appendix for the 4-part museum series. Part 1: Bridging the Gap | Part 2: React Native & Expo | Part 3: AWS Backend


How the Mobile, Shopify, Salesforce, and AWS Architecture Works

This appendix supplements the business-focused blog series by describing how the architecture actually behaves at runtime, without exposing proprietary or environment-specific details.

It is intended for:

  • Technical leads
  • IT partners
  • Vendors
  • Architects
  • Curious stakeholders who want more than the headline

1. Architecture at a Glance

At a high level, the system consists of four active participants:

  • A React Native mobile app
  • An AWS-hosted integration layer
  • Shopify APIs (content, merchandising, ticketing)
  • Salesforce APIs (campaigns, members, constituents)
React Native Mobile App
         ↕
AWS Integration Layer
    ↕           ↕
Shopify APIs    Salesforce APIs

This is a real-time, API-driven architecture, not a batch or export-based model.


2. Direct API Communication (By Design)

The mobile app does communicate with Shopify and Salesforce, but never directly.

All communication flows through AWS, which acts as:

  • The security boundary
  • The normalization layer
  • The resiliency coordinator

Why this matters

  • Shopify and Salesforce APIs evolve independently
  • Authentication models differ
  • Rate limits and retries must be managed centrally
  • Mobile clients should never embed vendor credentials

AWS is not just a proxy — it is the contract boundary.


3. Typical Request Flow (Content, Tickets, or User Context)

Mobile App
    ↓ Request content / events / tickets
AWS API
    ↓ Fetch latest content
Shopify API
    ↓ Fetch user or campaign data
Salesforce API
    ↓ Normalize + validate response
AWS API
    ↓ Unified payload
Mobile App

Key characteristics:

  • The app receives one coherent response
  • Vendor schemas are hidden from the client
  • Backend logic can evolve without app changes

4. User Handling & Identity (High-Level)

User identity is managed centrally, with AWS coordinating:

  • App authentication
  • Salesforce user context
  • Authorization for content or actions

The mobile app:

  • Authenticates once
  • Never stores Salesforce or Shopify credentials
  • Receives scoped access only

This ensures:

  • Consistent identity across systems
  • Reduced security exposure
  • Easier future migration

5. Offline Resiliency Is the Primary Reliability Strategy

The system assumes connectivity is unreliable, especially in museum environments.

Core principles

  • The app must remain usable without a connection
  • Previously available content should always display
  • User experience must never hard-fail due to network loss

Offline content strategy

  • Last-known content, events, and key data are cached locally
  • If no new content is available, the app continues to function using cached data
  • The visitor experience remains intact even with no signal
Visitor
   ↓
Mobile App
   ↓
Local Cache

This ensures:

  • Visitors are never blocked
  • Museum spaces with poor signal remain usable
  • The app feels reliable, not fragile

6. Push Notifications Are Intentional and Minimal

Push notifications are not used as a constant sync mechanism.

They are used specifically for:

  • New content
  • New events
  • Time-sensitive announcements

Using Expo push services:

  • Notifications are lightweight
  • They prompt the app to refresh
  • They do not carry business logic
Content Update (Admin)
        ↓
AWS Backend
        ↓
Expo Push Service
        ↓
Mobile App

If the user opens the app:

  • Fresh data is fetched
  • Cached data is updated
  • Offline behavior remains intact

7. Sync Philosophy: Continuous, Not Fragile

This system avoids:

  • One-way sync
  • Manual exports
  • Tight coupling

Instead:

  • APIs are called as needed
  • Writes are intentional
  • Failures are retried safely
  • No single system blocks the experience

The result is eventual consistency with strong user experience guarantees.


8. Preparing for a Fully Custom Future (Without Committing Now)

If the museum later chooses to:

  • Replace Shopify ticketing
  • Reduce Salesforce dependency
  • Introduce a custom backend
  • Add kiosks or additional digital channels

The mobile app does not change.

Mobile App
     ↓
AWS Integration Layer
    ↙        ↘
Custom      Salesforce / Shopify
Backend      (optional)

Only the integrations evolve.

That flexibility exists because:

  • The app depends on your backend
  • Not directly on vendor platforms

Summary

This architecture prioritizes:

| Concern | Approach | |---------|----------| | Security | All traffic through AWS | | Reliability | Offline-first design | | Maintainability | Single codebase (React Native) | | Scalability | Decoupled integration layer | | Future-proofing | Contract-based APIs |

The mobile app becomes a stable, long-lived asset — not a liability that needs constant rebuilding.

Enjoyed this article?

Get in touch if you'd like to discuss these ideas further.

Start a Conversation