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

Micro Frontends — Unraveling the Illusions

Micro Frontends — Unraveling the Illusions

Frontend Meetup Munich — FrontMuc

SQUER Solutions

September 21, 2023
Tweet

More Decks by SQUER Solutions

Other Decks in Technology

Transcript

  1. @duffleit 👧 🧑 🧑 👧 🧑 🧑 👧 🧑 🧑

    👧 🧑 🧑 Independent Deployments Resilience Autonomous Teams
  2. @duffleit We were so committed to the concept of Micro

    Frontends that we began addressing all the technical challenges associated with their implementation.
  3. @duffleit Browser 👧 🧑 🧑 👧 🧑 🧑 👧 🧑

    🧑 👧 🧑 🧑 Autonomous Teams 💃 Micro Frontend
  4. @duffleit 👧 🧑 🧑 👧 🧑 🧑 👧 🧑 🧑

    👧 🧑 🧑 Autonomous Teams 💃 🔗 Linked Applications
  5. @duffleit 👧 🧑 🧑 👧 🧑 🧑 👧 🧑 🧑

    👧 🧑 🧑 Autonomous Teams 💃 🔗 Linked Applications
  6. @duffleit Browser 👧 🧑 🧑 👧 🧑 🧑 👧 🧑

    🧑 👧 🧑 🧑 Autonomous Teams 💃 Micro Frontend
  7. @duffleit Server Side Browser 👷 💃 SSI Compose MicroFrontend 👷

    👷 👷 📦 📦 📦 📦 ESI Independent Deployments Resilience Server Side Integration
  8. @duffleit Browser 👷 💃 👷 👷 👷 📦 📦 📦

    📦 App Shell Independent Deployments Resilience Avoid Roundtrips Runtime Integration
  9. @duffleit Browser Loading Times Independent Deployments Newer Version Default Version

    Reusage vs. Global Dependency Webpack Module Federation
  10. @duffleit Frontend Communication Browser 📜 📜 📜 📜 Contract Libs

    Backward or Forward compatible to avoid Breaking Changes
  11. @duffleit 🪢 Integration Patterns ♻ Reusage of Global Dependency 💦

    SSR and Hydration ✉ Client Side Integration And many more
  12. @duffleit How big should a Micro Frontend be? Which is

    not a technical Question. Only as big to still fit in our heads as a team. Daniel Terhorst-North
  13. @duffleit Product Search Checkout Delivery Progress 👧 🧑 🧑 👧

    🧑 🧑 👧 🧑 🧑 🔗 🤯 🤯 🤯 Team Vertical Limited by Cognitive Load
  14. @duffleit Product Search Checkout Delivery Progress 👧 🧑 🧑 🔗

    Product Catalogue Rating Basket 👧 🧑 🧑 👧 🧑 🧑
  15. @duffleit Checkout Delivery Progress 👧 🧑 🧑 🔗 🔗 Product

    Catalogue Rating Basket 👧 🧑 🧑 👧 🧑 🧑
  16. @duffleit Checkout Delivery Progress 👧 🧑 🧑 Rating ⭐ Product

    🥭 Basket 🛍 Product Catalogue Rating Basket 👧 🧑 🧑 👧 🧑 🧑 Product Detail
  17. @duffleit 👧 🧑 🧑 Rating ⭐ Product 🥭 Basket 🛍

    Product Catalogue Rating Basket Product Detail 👧 🧑 🧑 👧 🧑 🧑
  18. @duffleit 👧 🧑 🧑 Rating ⭐ Product 🥭 Basket 🛍

    Product Catalogue Rating Basket Product Detail Rating ⭐ Product 🥭 🛍 Product Search Rating Basket Product Search Rating ⭐ Product 🥭 🛍 👧 🧑 🧑 👧 🧑 🧑
  19. @duffleit Typically, we do not achieve full end-to-end verticalization in

    our value streams. As it is usually not beneficial to divide our value streams based solely on the provided UI representation.
  20. @duffleit 👧 🧑 🧑 Rating ⭐ Product 🥭 Basket 🛍

    Product Catalogue Rating Basket Product Detail Rating ⭐ Product 🥭 🛍 Product Search Rating Basket Product Search Rating ⭐ Product 🥭 🛍 👧 🧑 🧑 👧 🧑 🧑
  21. @duffleit 👧 🧑 🧑 Rating ⭐ Product 🥭 Basket 🛍

    Product Catalogue Rating Basket Product Detail Rating ⭐ Product 🥭 🛍 Product Search Rating Basket Product Search Rating ⭐ Product 🥭 🛍 👧 🧑 🧑 👧 🧑 🧑
  22. @duffleit Much of our complexity has started to reside outside

    of the value streams and instead lies in the orchestration of these finely-grained Micro Frontends. Which ultimately introduces high coupling. Independent Deployments Resilience
  23. @duffleit Product Search Checkout Delivery Progress 👧 🧑 🧑 👧

    🧑 🧑 👧 🧑 🧑 🔗 🤯 🤯 🤯 Team Vertical Limited by Cognitive Load
  24. @duffleit Product Search Checkout Delivery Progress 👧 🧑 🧑 🔗

    Product Catalogue Rating Basket 👧 🧑 🧑 👧 🧑 🧑
  25. @duffleit Product Search Checkout Delivery Progress 👧 🧑 🧑 🔗

    Product Catalogue Rating Basket 👧 🧑 🧑 👧 🧑 🧑
  26. @duffleit Product Search Checkout Delivery Progress 👧 🧑 🧑 🔗

    Product Catalogue Rating Basket 👧 🧑 🧑 👧 🧑 🧑 👧 🧑 🧑
  27. @duffleit Product Search Checkout Delivery Progress 👧 🧑 🧑 🔗

    Product Catalogue Rating Basket 👧 🧑 🧑 👧 🧑 🧑 👧 🧑 🧑 📜 Backend For Frontend Value Stream
  28. @duffleit Product Search 👧 🧑 🧑 🔗 Product Catalogue Rating

    Basket 👧 🧑 🧑 👧 🧑 🧑 👧 🧑 🧑 The integration and orchestration of the various capabilities offered by the value streams do not occur "between the teams”. One team accountable for delivering a great customer experience.
  29. @duffleit Product Search 👧 🧑 🧑 🔗 Product Catalogue Rating

    Basket 👧 🧑 🧑 👧 🧑 🧑 👧 🧑 🧑 Checkout Delivery Progress
  30. @duffleit Product Search 👧 🧑 🧑 🔗 Product Catalogue Rating

    Basket 👧 🧑 🧑 👧 🧑 🧑 👧 🧑 🧑 Checkout 🔗 👧 🧑 🧑 👧 🧑 🧑 👧 🧑 🧑 Deilvery 🔗 👧 🧑 🧑 👧 🧑 🧑
  31. @duffleit But Micro Frontends do not address technical challenges, they

    serve as a means to scale our engineering organization through full end-to-end verticals.
  32. @duffleit 👧 🧑 🧑 👧 🧑 🧑 👧 🧑 🧑

    Autonomous Teams USER 💃 Useful vertical slices frequently do not align with the expected frontend channel experience. 👧 🧑 🧑
  33. @duffleit Micro Frontends address the sociotechnical challenge of enabling fully

    end-to-end verticalized organizations, a situation we rarely encounter in practice.
  34. @duffleit 👧 🧑 🧑 👧 🧑 🧑 👧 🧑 🧑

    👧 🧑 🧑 Autonomous Teams USER 💃 👧 🧑 🧑
  35. @duffleit The more your value streams differ from your user

    flows, the less Micro Frontends are the answer.