Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
The Status of Micro Frontends
Search
Manfred Steyer
PRO
March 23, 2022
Programming
520
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The Status of Micro Frontends
Manfred Steyer
PRO
March 23, 2022
More Decks by Manfred Steyer
See All by Manfred Steyer
Beyond Chatbots: Agentic UI with Open Standards @AGNTcon 2026 in Amsterdam
manfredsteyer
PRO
0
31
Next-Level Frontends: Agentic Web UIs Under the Hood
manfredsteyer
PRO
0
38
Agentic UI with Open Standards @ngGraz Sep 2026
manfredsteyer
PRO
0
68
Agentic UI with Open Standards @GDG Salzburg, Bgl & Prishtina
manfredsteyer
PRO
0
64
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
1
500
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
0
210
Nostalgia Meets Technology: Super Mario with TypeScript
manfredsteyer
PRO
0
300
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
300
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
210
Other Decks in Programming
See All in Programming
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
240
Are APIs Still Relevant in the AI Era?
soyuka
0
210
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
150
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
350
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
690
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
1.8k
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
110
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
620
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
120
速習iPhone Duo対応
yuukiw00w
1
260
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
120
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
550
Featured
See All Featured
How to make the Groovebox
asonas
2
2.4k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
330
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
We Have a Design System, Now What?
morganepeng
55
8.3k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
660
The Curious Case for Waylosing
cassininazir
1
510
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
450
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
840
Unsuck your backbone
ammeep
672
58k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
830
Transcript
@ManfredSteyer ManfredSteyer The Status of Micro Frontends Manfred Steyer, ANGULARarchitects.io
@ManfredSteyer Booking App Booking App Check-in App Check-in App Boarding
App Boarding App Luggage App Luggage App
@ManfredSteyer
@ManfredSteyer
@ManfredSteyer
@ManfredSteyer ✓Hyperlinks ✓Server-Side Includes ✓Server-Side orchestration
@ManfredSteyer The Final Frontier
@ManfredSteyer ▪ Loading into Browser ▪ Bundle Size ▪ Version
Conflicts
@ManfredSteyer #1 Analysis #2 Implementation
@ManfredSteyer Manfred Steyer
@ManfredSteyer
@ManfredSteyer Which one is the best?
@ManfredSteyer It’s all about consequences in your very situation!
@ManfredSteyer
@ManfredSteyer
@ManfredSteyer • Autarkic teams, so that … • it's possible
to do changes w/o coordinating with other teams • own architectural decisions • Migrating step by step to new tech stacks : • Fully consistent design • Bundle size
@ManfredSteyer Booking Booking Check-in Check-in Boarding Boarding Luggage Luggage
@ManfredSteyer Should mirror a real-world business domain Large enough: Most
use cases don't overlap domains Small enough: One team can handle it
@ManfredSteyer
@ManfredSteyer
@ManfredSteyer Monorepo Structure
@ManfredSteyer https://nrwl.io/nx
@ManfredSteyer Visualize Module Structure
@ManfredSteyer
@ManfredSteyer
@ManfredSteyer
@ManfredSteyer
@ManfredSteyer
@ManfredSteyer µFrontend µFrontend µFrontend
@ManfredSteyer
@ManfredSteyer
@ManfredSteyer
@ManfredSteyer µService Providing a (SPA based) Shell µApp µApp µApp
Shell
@ManfredSteyer • iframes (very present) • Web Components (a bit)
@ManfredSteyer const Component = await import('other-app/cmp');
@ManfredSteyer Shell (Host) Microfrontend (Remote) // Maps Urls in //
webpack config remotes: { mfe1: "http://..." } // Expose files in // webpack config exposes: { './Cmp': './my.cmp.ts' } import('mfe1/Cmp')
@ManfredSteyer How to Get the Microfrontend's URL? Shell (Host) Microfrontend
(Remote) RemoteEntry.js <script src="…"></script>
@ManfredSteyer Shell (Host) Microfrontend (Remote) shared: [ "@angular/core", "…" ]
shared: [ "@angular/core", "…" ]
@ManfredSteyer Selecting the highest compatible version 10.0 10.1
@ManfredSteyer Compiled app code is not officially backwards compatible
@ManfredSteyer Conflict: No highest compatible version 11.0 10.1
@ManfredSteyer
@ManfredSteyer Booking Booking Boarding Boarding Shared Shared Feature Feature Feature
Feature Feature Feature Feature Feature Feature Feature … … … … … … … … … … … … … … … … … … Booking App Booking App Boarding App Boarding App Publish shared libs seperately via npm Repository n Repository 2 Repository 1 Version Mismatches? Strict Borders
@ManfredSteyer Booking Booking Boarding Boarding Shared Shared Feature Feature Feature
Feature Feature Feature Feature Feature Feature Feature … … … … … … … … … … … … … … … … … … Booking App Booking App Boarding App Boarding App
@ManfredSteyer Decoupling: Access Restrictions/ Linting (Nx) Separate Deployment* No Version
Conflicts (just one version!)
@ManfredSteyer
@ManfredSteyer Hyperlinks µFrontend µFrontend µFrontend
@ManfredSteyer <iframe></iframe>
@ManfredSteyer
@ManfredSteyer Abstracting away differences b/w frameworks Shadow DOM Properties/ Events
@ManfredSteyer
@ManfredSteyer const Component = await import('other-app/cmp');
@ManfredSteyer const main = await import('other-app/main'); main.bootstrap();
@ManfredSteyer const main = await import('other-app/main'); main.bootstrap(); const rootElm =
document.createElement('app-root') document.body.appendChild(rootElm);
@ManfredSteyer await import('other-app/main'); // Self-Bootstrapping const rootElm = document.createElement('app-root') document.body.appendChild(rootElm);
@ManfredSteyer await import('other-app/main'); const rootElm = document.createElement('app-root') document.body.appendChild(rootElm); WrapperComponent
@ManfredSteyer
@ManfredSteyer https://red-ocean-0fe4c4610.azurestaticapps.net
@ManfredSteyer Free eBook ANGULARarchitects.io/book Updated for Module Federation and Alternatives
@ManfredSteyer Conclusion Know your architecture goals + Evaluate! Know your
architecture goals + Evaluate! Moduliths vs. Micro Frontends Moduliths vs. Micro Frontends Monorepo vs. multiple repos Monorepo vs. multiple repos Module Federation: Tempting Module Federation: Tempting
@ManfredSteyer d Slides & Examples Remote Company Workshops and Consulting
http://angulararchitects.io