System Design Space
Knowledge graphSettings

Updated: June 22, 2026 at 8:11 AM

Building Micro-Frontends (short summary)

medium

Micro-frontends matter not as a buzzword, but as a way to align frontend structure with organizational structure. The discussion is about domain boundaries, ownership, and integration cost between independent product parts—not about widgets.

Luca Mezzalira's book turns team independence into concrete decisions: how to split the frontend by domain, how to choose a composition model, how to run platform governance, and how to migrate from a monolith without detonating complexity all at once.

The material is especially useful when you need to weigh leverage and coordination tax honestly: when micro-frontends truly accelerate teams, and when they mostly redistribute complexity into a new integration layer.

Practical value of this chapter

Design in practice

Turn the book's ideas into decisions about composition models, domain ownership, and shell runtime behavior.

Decision quality

Evaluate architecture through delivery speed, UI stability, observability, change cost, and operating risk.

Interview articulation

Structure answers as problem → constraints → architecture → trade-offs → migration path with explicit frontend reasoning.

Trade-off framing

Make trade-offs explicit around decomposition and integration: team scale, technical debt, performance budget, and long-term maintainability.

Official source

Building Micro-Frontends

Luca Mezzalira on how architecture, delivery model, and team shape hold together once you cut the frontend into micro-frontends.

Open book page

Building Micro-Frontends

Authors: Luca Mezzalira
Publisher: O'Reilly Media, 2021
Length: 334 pages

Luca Mezzalira on scaling frontend teams: fourteen chapters on principles, composition models, automation, migration, and organizational adoption of micro-frontends.

Original

Book structure

The book is organized into three logical parts and fourteen chapters—from principles to organizational adoption and the role of AI:

Part I: Principles

Chapters 1–3: principles, architectural challenges, and composition model overview.

Part II: Implementation

Chapters 4–8: CSR/SSR, automation, discover and deploy, automation pipeline case study.

Part III: Operations

Chapters 9–14: backend patterns, anti-patterns, migration, organization, and AI as augmentation.

Part I: Principles and architectures

Chapter 1: Micro-frontend principles

The book boils architecture down to four pillars—a North Star you check every contested decision against:

Domain ownership

Module boundaries align with business domains, not UI technology layers.

Independent delivery

Each team releases its micro-frontend autonomously, without synchronously releasing the entire portal.

Contract-first integration

Stable contracts for routing, auth, events, and shared APIs instead of implicit agreements.

Platform governance

A thin platform layer: standards, quality gates, and change rules without bureaucratic bottlenecks.

The main criterion is independent deployability: a team should release its module without coordinating with every other team.

Chapter 2: Architectures and challenges

Key splits:

  • Vertical — by product vertical slices
  • Horizontal — by UI layers (risky as the primary criterion)
  • Coupling through shared dependencies and shared state

Distributed frontend adds:

  • Release and shared-library version coordination
  • Risk of a distributed monolith on the client
  • Need for unified observability

Related book

Micro Frontends in Action

Walks through composition patterns and how to leave a monolithic SPA without a rewrite from scratch.

Read summary

Chapter 3: Discovering composition architectures

iframe

Maximum isolation, but heavy UX and integration cost

Build-time

Low entry barrier, less release independence

Client-side (runtime)

Maximum autonomy, strict performance control required

Server-side (SSR)

SEO and first paint, higher orchestration complexity

Micro-frontend architecture map

The map shows how a micro-frontend becomes part of a product: where composition happens, what the shell owns, and how a team ships changes without a large shared release.

Path

RequestShellFragmentsUnified screen

Where the unified user experience is assembled

Composition can happen on the server, in the browser at runtime, or during the build. The choice affects first screen speed, team autonomy, and integration cost.

Entry

A user opens a route

The route determines which domain parts are needed for the page.

routes to

Frame

The shell chooses the assembly model

The server can return ready HTML, the browser can load modules at runtime, or the build can join artifacts ahead of time.

assembles

Domains

Micro-frontends provide their fragments

Catalog, cart, profile, and checkout stay within the boundaries of their owning teams.

renders

Experience

The user sees one coherent screen

The platform hides seams while preserving domain independence where it is actually useful.

Architecture meaning

When to look here

  • You need to choose between server, browser runtime, and build-time composition.
  • The team is trading first screen speed against release independence.
  • The shell boundary is unclear.

A composition model should not be chosen by technology alone. It follows product routes, SEO needs, first screen speed, and platform-team maturity.

Part II: Implementation and automation

Chapter 4: Client-side rendering micro-frontends

Module Federation

Runtime loading of remote bundles

single-spa

Orchestrator for mounting multiple apps in one shell

import maps

Declarative module URLs without a single bundle

Chapter 5: Server-side rendering micro-frontends

Server-side rendering assembles HTML on edge or server before sending it to the browser. You pay for that in complexity: careful orchestration and fragment caching. In return you get SEO and a predictable first paint.

Chapter 6: Automation

  • Unified CI templates and release policy for all teams
  • Quality gates: lint, types, performance budget
  • Contract tests (Pact and similar) at module boundaries
  • Unified observability model for all micro-frontends

Chapter 7: Discover and deploy

Service discovery

Registry of MFE artifacts and versions

Canary / blue-green

Gradual rollout without risking the whole portal

CDN / edge

Static and fragment delivery close to users

Chapter 8: Case study — automation pipeline

What it looks like in practice: multiple teams, one shared shell, independent pipelines. What holds it together is shared guardrails in CI and automatic contract checks before production — without them team autonomy quickly drifts into chaos.

Part III: Operations, migration, and organization

Related book

Frontend Architecture for Design Systems

Lifts design systems and frontend governance to the platform level — where the shared rules and contracts live.

Read summary

Chapter 9: Backend patterns for micro-frontends

BFF

Backend for Frontend — API tailored to a specific MFE

API Gateway

Single entry point, auth, rate limiting

Monolith vs microservices API

Choosing the data layer under frontend composition

Chapter 10: Common anti-patterns

  • Splitting micro-frontends by framework instead of business context: the boundary sits where the product doesn't change.
  • A global shared library whose release blocks every team at once.
  • No uniform versioning or backward-compatibility rules — every upgrade turns into a gamble.
  • Big-bang migration instead of a gradual strangler approach: nothing to roll back to.
  • Operational metrics not sliced per module, so the source of a failure can't be located.

Related chapter

Decomposition strategies

How to extract bounded contexts before cutting the frontend — otherwise the boundaries land on arbitrary lines.

Read chapter

Chapter 11: Migrating to micro-frontends

  • Strangler fig instead of a big-bang rewrite
  • Extract bounded contexts in the frontend first
  • Shell and platform contracts before domain modules
  • Backward compatibility and deprecation policy

Companion book

Monolith to Microservices

The backend migration playbook—a parallel story that makes it easy to align API boundaries with the frontend.

Read summary

Chapter 12: Case study — monolith to MFE

The route, step by step: monolithic SPA → shell → first domain module → expansion to checkout, catalog, profile. It rests on two things: every stage is measurable, and every stage has a rollback.

Chapter 13: Introducing micro-frontends in your organization

Organizational practices:

  • Conway's Law — UI structure mirrors team structure
  • Stream-aligned teams by domain
  • Platform team for guardrails

Governance without overload:

  • RFC/ADR for shared contract changes
  • Ownership matrix and SLA on the shared layer
  • Explicit deprecation instead of sudden breaking changes

Chapter 14: AI and micro-frontends

AI takes the routine off your plate—generating boilerplate, helping with contract tests and documentation. What it does not do is draw the architectural boundaries: domain ownership, the shell, and contracts stay with the teams, not the model.

Trade-offs: where complexity pays off

Runtime composition

Upside: Teams and releases fully decoupled: each ships at its own pace.

Cost: Performance, versioning, and integration reliability slip out of the build's control — you now hold them at runtime.

Use when: Pays off when the product grows quickly and domains must release at different speeds.

Shared design system

Upside: Consistent UX across teams, more predictable development.

Cost: Without a real change process the shared system becomes a bottleneck: one token edit blocks every release.

Use when: Worth it for multi-team products where an inconsistent UI hurts the business.

Strict contracts between modules

Upside: Parallel releases break each other unexpectedly far less often.

Cost: The price is engineering discipline: contract tests, a deprecation policy, explicit ownership. Skip it and contracts rot fast.

Use when: Essential at high release velocity with many cross-team integrations.

Step-by-step rollout

  1. Define domain slices and ownership map between teams.
  2. Create a shell and fix minimum contracts: navigation, identity, telemetry, design tokens.
  3. Translate legacy UI step by step using the strangler fig pattern, starting with the least risky areas.
  4. Introduce contract tests and consumer-driven checks between micro-frontends.
  5. Build observability per domain: errors, latency, business KPIs, release health.

How to evaluate implementation progress

Readiness checklist

  • There is a clear domain decomposition and ownership map between teams.
  • Minimal cross-team contracts are defined: routing, auth, events, telemetry.
  • A shared versioning and deprecation process exists for shared APIs.
  • A platform function supports guardrails and tooling across teams.

Success metrics

  • Lead time for domain-module releases decreases without incident rate growth.
  • Cross-team blockers per sprint drop thanks to contract-driven integration.
  • Core Web Vitals stay within targets after frontend decomposition.
  • Errors and latency can be traced quickly to a specific module and team.

Key takeaways

Do:

  • Split the frontend by domain, not by framework
  • Independent deployability is the main success criterion
  • Invest in observability from day one
  • Migrate gradually via strangler fig

Don't:

  • Adopt micro-frontends for hype without organizational readiness
  • A distributed monolith on the client—the worst of both worlds
  • A shared library that blocks every team's releases
  • Ignore team structure and platform governance

Who is this book for?

Ideal for:

  • Architects planning frontend team scaling
  • Tech leads deciding on SPA decomposition
  • Developers in growing multi-team products
  • Anyone preparing for frontend System Design interviews

Prerequisites:

  • Experience with SPAs and component-driven UI
  • Basic CI/CD and contract testing knowledge
  • Familiarity with microservices ideas (helpful)

Related chapters

  • The Art of Micro Frontends - extends the baseline model into enterprise platform maturity: governance, orchestration, and scaling standards for teams.
  • Micro Frontends in Action - adds practical vertical-slice integration patterns and shows how to migrate without a big-bang rewrite.
  • Frontend Architecture for Design Systems - connects micro-frontends to system-level frontend architecture: contract discipline, DX, and shared UI standards.
  • React.js: The Documentary - provides the component-driven ecosystem context where key module isolation and reuse practices were shaped.
  • Vite: The Documentary - shows why local build speed and a fast feedback loop are critical for independent micro-frontend teams.

Where to find the book

Enable tracking in Settings