Microsoft Microsoft | Azure Well-Architected · Microservices Architecture Comparison
View repository References
FRONTEND ARCHITECTURE DECISION

Same XYZ experience, two deployment and ownership models

Compare the optional Static Web Apps composition shell with a unified React web container on Azure Container Apps. The business-capability APIs remain on ACA in both options; the decision changes the frontend release boundary, runtime, and operating model.

Same UX Same ACA services Different frontend boundary
Decision scope: this is not a service-to-service architecture choice. It compares how the React experience is packaged, composed, deployed, scaled, and owned.

01 Side-by-side topology

Distributed frontend · optional flavor

SWA shell + micro apps

A stable shell owns chrome, routing, identity, design tokens, and named slots. Feature teams publish independently versioned bundles that the shell composes at runtime.

BrowserOne composed XYZ experience
Azure Static Web AppsComposition shell + edge delivery
Engagementremote bundle
XYZ gaugeremote bundle
Approvalsremote bundle
API Management + ACAGateway and capability services

Best fit

  • Multiple frontend teams need independent releases.
  • The shared shell PR queue is a measurable bottleneck.
  • Per-feature failure isolation offsets contract complexity.
Unified frontend · ACA hosted

Integrated web app on ACA

One React build contains the engagement, XYZ, and approval features. Nginx serves the SPA from one non-root container behind ACA ingress.

BrowserOne integrated XYZ experience
ACA external ingressHTTPS + revision traffic
React + Nginx containerEngagement + XYZ + approvals
API Management + ACAGateway and capability services

Best fit

  • One frontend team owns the whole user experience.
  • Operational simplicity is the primary constraint.
  • Features can share one coordinated release cadence.

02 Operating model comparison

The visible application is intentionally equivalent. The trade-off is autonomy versus platform and runtime complexity.

DimensionSWA shell + micro appsIntegrated web app on ACA
Frontend deploymentShell plus independently published remote bundlesOne versioned OCI image
Release coordinationPer micro app; shell contract changes are coordinatedOne frontend release and regression boundary
Runtime compositionNamed slots and Module FederationDirect React imports and one state tree
Frontend scalingSWA edge distribution for static assetsACA HTTP replicas; optional minimum replica to avoid cold start
Failure isolationPer-slot error boundary can degrade one remoteOne frontend revision is the failure boundary
Security surfaceRemote provenance, CSP endpoints, and shared dependency governanceContainer supply chain, ingress, Nginx, and image patching
ObservabilityShell plus per-remote versions and telemetryOne frontend image and ACA revision
Operational loadMore pipelines, contracts, pointers, and rollback pathsOne build, image, health model, and rollback path
Primary advantageIndependent team deliveryLower cognitive and operational overhead

03 Decision rule

Start unified; earn composition with evidence.

Choose the ACA web container while one team can safely own and release the frontend. Adopt the composition shell only when independent frontend teams, release contention, or blast-radius requirements create enough value to pay for runtime contracts and additional operations.

Not an either/or backend decision: both options can use the same APIM facade, ACA vertical slices, data stores, messaging backbone, identity controls, and observability platform.

04 Runnable samples

Launch locally: open the Runnable Samples launcher for startup commands and links to ports 5173, 5174, and 5175.
Citation scope: Azure service behavior is grounded in the workshop References. Runtime Module Federation and micro-frontend composition are general industry techniques, not Microsoft reference architectures.