Microsoft Microsoft | Azure Well-Architected · Microservices Sequence Diagrams
View repository
SEQUENCE DIAGRAMS

From monolith to the microservices flavors — one flow at a time

Every architectural consideration in this workshop, rendered as an interactive sequence diagram: the legacy baseline, the cross-cutting microservices flows (shared by all flavors), each of the three frontend flavors (A single Static Web App, B composition shell, C self-contained systems), and the delivery and migration paths. Building blocks are cited on the References page.

00 · Monolith (as-is)

Baselineone processshared DBfull redeploy

The legacy XYZ tool: one Blazor/.NET process, one shared database, synchronous full-page postbacks. Any change touches everything.

Cross-cutting microservices flows (shared by flavors A, B, C)

01 · Vertical slice lifecycle — CQRS + transactional outbox

all flavorseventual consistencyoutbox

A write returns the authoritative result immediately; the read model catches up asynchronously via the outbox and an idempotent projector.

02 · Near-real-time right rail — SSE (mixed sources)

all flavorsSSERedis backplane

Domain events (a recalculation) and external feeds (Azure Updates / Service Health / Marketplace) converge on a Redis backplane and stream to the browser.

03 · Approvals saga — Service Bus sessions + compensation

all flavorssagaDLQ

The approval matrix (EP → OMP → RMP → NMP) runs as a session-based saga, ordered per request, with compensation on rejection.

04 · Identity & fine-grained authorization

all flavorsEntra ID + External IDdefense in depth

APIM validates the JWT at the edge; each slice re-checks a resource-level policy (right market, no self-approval).

Frontend flavors — how the page is delivered & composed

05A · Single SWA (default)

defaultone FE build

One Static Web App serves the whole SPA; feature folders map to slices. Simplest, best for pixel parity and one FE team.

05B · Composition shell + Module Federation remotes optional

optional flavorruntime compositionindependent deploy

A thin shell exposes named slots and loads independently deployed slice remotes at runtime; a bad remote degrades to a placeholder.

05C · Self-contained systems (UI-owning containers) optional

optional flavoredge compositionfragments

No SWA. A dumb Frame service fetches HTML fragments in parallel from each slice's container (each owns UI + API + data) and streams the composed page.

Delivery & migration

06 · CI/CD ring promotion (GitHub Actions · OIDC)

no stored secretspromote by digestSLO gate

One immutable image is promoted by digest through the rings; rollback is a traffic shift, not a rebuild.

07 · Parallel rebuild / strangler at the edge

migrationshadow comparecut over per workflow

New slices run beside the monolith behind one edge. Migrated paths route to slices (with shadow comparison); the rest still hit the monolith.