Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Strategic Design in the Frontend: Moduliths & ...

Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope

Avatar for Manfred Steyer

Manfred Steyer PRO

June 09, 2026

More Decks by Manfred Steyer

Other Decks in Programming

Transcript

  1. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten Strategic Design in

    the Frontend: Moduliths & Micro Frontends ANGULARarchitects.io
  2. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 3 Frontends became

    quite powerful … and complex! Modern SPAs are far more than receivers of DTOs
  3. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 5 1) How

    to Structure our Frontends? (+ how Strategic Design can help) 2) Implementation with Frontend Moduliths and Micro Frontends 3) Demos and Live Coding 4) Labs Agenda
  4. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 6 About Me

    (Remote) Angular Workshops and Consulting Google Developer Expert for Angular Blog, Books, Articles, and Talks about Angular Manfred Steyer, ANGULARarchitects.io
  5. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 9 Vertical Architectures

    < Minimal Dependencies Vertical 1 Vertical 2 Vertical 3 Feature Feature Feature Feature Feature Feature Feature Feature Feature Conway's law
  6. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 11 Let's Try

    With Semantics … Book Flight Check-in Passenger Check-in Luggage Board Plane Pickup Luggage
  7. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 13 Booking Boarding

    Flight Price Seats Passenger Tickets Flight Ticket Different Models: Clear Semantics → Less Deps
  8. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 14 Mindset &

    Techniques, Frontend devs can learn from Strategic Design
  9. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 20 If there

    is translation, the frontend can have a very simple ("cheap bargain") Bounded Context
  10. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 21 "A bounded

    context owns the vertical slice of functionality [including the] presentation layer"
  11. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 22 "[…] DDD

    folks […] can make the final mistake of exposing this complexity to the customer."
  12. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 24 ✓ Different

    Models ✓ Look out for Semantics ✓ Look out for Pivotal Events ✓ Look at Processes ✓ Team up with Experts → Domain Knowlege ✓ Use Collaborative Modeling Takeaways
  13. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 26 Booking Boarding

    Shared Feature Feature Feature Feature Feature UI UI UI UI UI UI UI UI UI Data Data Data Data Data Data Util Util Util Util Util Util Enterprise Monorepo Patterns, Nrwl 2018: https://tinyurl.com/y2jjxld7 Smart Comp. Dumb Comp.
  14. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 27 Booking Boarding

    Shared Feature Feature Feature Feature Feature UI UI UI UI UI UI UI UI UI Data Data Data Data Data Data Util Util Util Util Util Util Enterprise Monorepo Patterns, Nrwl 2018: https://tinyurl.com/y2jjxld7 Smart Comp. Dumb Comp.
  15. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 28 Booking Boarding

    Shared Feature Feature Feature UI UI UI Data Data Util Util Enterprise Monorepo Patterns, Nrwl 2018: https://tinyurl.com/y2jjxld7 Feature Feature Feature Feature Feature Feature Feature UI Data Util UI Data Util
  16. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 31 • Organize

    Repos and Project(s) Around Libraries • Module Boundaries • Build Cache • Dependency Graph Selected Features
  17. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 45 Module Federation

    Shell (Host) Micro Frontend (Remote) // Maps Urls in // webpack config remotes: { mfe1: "http://..." } import('mfe1/Cmp') // Expose files in // webpack config exposes: { './Cmp': './my.cmp.ts' }
  18. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 46 Sharing Libs

    Shell (Host) Micro Frontend (Remote) shared: [ "@angular/core", "…" ] shared: [ "@angular/core", "…" ]
  19. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 51 Not perfect

    :) Abstract them, e.g. via Web Components Different Versions or Frameworks? Angular App (MFE) React App (MFE) Coarse-grained Web Component
  20. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 55 Free eBook

    (6th Edition) ANGULARarchitects.io/book Module Federation & Nx
  21. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 57 Micro Frontend

    Platform Team Stream-aligned team 1 Stream-aligned team 2 Stream-aligned team … XaaS Flow of change
  22. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 58 ✓ Domain

    thinking: also valueable in the frontend ✓ Different models, semantics, pivotal events ✓ Collaborative modelling together with domain experts ✓ Frontend Moduliths vs. Micro Frontends Conclusion
  23. •Textmasterformat bearbeiten • Zweite Ebene Mastertextformat bearbeiten 61 [Social Media]

    Manfred Steyer [web] ANGULARarchitects.io Manfred Steyer @ Manfred Steyer Slides & Examples Remote Company Workshops and Consulting http://angulararchitects.io