Slide 1

Slide 1 text

@duffleit Micro Frontends Unraveling the Illusions @duffleit

Slide 2

Slide 2 text

@duffleit DAVID LEITNER Coding Architect πŸ‘‹ [email protected] 🌎 @duffleit

Slide 3

Slide 3 text

@duffleit Microfrontends a strive for fully verticalized teams Microfrontends in the Wild

Slide 4

Slide 4 text

@duffleit Frontend Monolith Independent Deployments Independent Scale Resilience Technology Freedom

Slide 5

Slide 5 text

@duffleit

Slide 6

Slide 6 text

@duffleit

Slide 7

Slide 7 text

@duffleit πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ Independent Deployments Resilience Autonomous Teams

Slide 8

Slide 8 text

@duffleit We were so committed to the concept of Micro Frontends that we began addressing all the technical challenges associated with their implementation.

Slide 9

Slide 9 text

@duffleit Browser πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ Autonomous Teams πŸ’ƒ Micro Frontend

Slide 10

Slide 10 text

@duffleit πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ Autonomous Teams πŸ’ƒ πŸ”— Linked Applications

Slide 11

Slide 11 text

@duffleit πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ Autonomous Teams πŸ’ƒ πŸ”— Linked Applications

Slide 12

Slide 12 text

@duffleit Browser πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ Autonomous Teams πŸ’ƒ Micro Frontend

Slide 13

Slide 13 text

@duffleit Build Time Browser πŸ‘· πŸ’ƒ Mono repos Compose MicroFrontend Build Time Integration

Slide 14

Slide 14 text

@duffleit Server Side Browser πŸ‘· πŸ’ƒ SSI Compose MicroFrontend πŸ‘· πŸ‘· πŸ‘· πŸ“¦ πŸ“¦ πŸ“¦ πŸ“¦ ESI Independent Deployments Resilience Server Side Integration

Slide 15

Slide 15 text

@duffleit Browser πŸ‘· πŸ’ƒ πŸ‘· πŸ‘· πŸ‘· πŸ“¦ πŸ“¦ πŸ“¦ πŸ“¦ App Shell Independent Deployments Resilience Avoid Roundtrips Runtime Integration

Slide 16

Slide 16 text

@duffleit Server Time Build Time INtegration Server Side Integration Runtime Integration Build Time Run Time ⭐

Slide 17

Slide 17 text

@duffleit Browser Global Dependency App Shell Independent Deployments Reusage vs. Global Dependency

Slide 18

Slide 18 text

@duffleit Browser Loading Times App Shell Independent Deployments Reusage vs. Global Dependency

Slide 19

Slide 19 text

@duffleit Browser Loading Times Independent Deployments Newer Version Default Version Reusage vs. Global Dependency Webpack Module Federation

Slide 20

Slide 20 text

@duffleit tomdale.net/2017/09/compilers-are-the-new-frameworks SVELTE

Slide 21

Slide 21 text

@duffleit Browser Slow Rendering Times Slow Rendering Time ⏳ ⏳ ⏳ ⏳

Slide 22

Slide 22 text

@duffleit Progressive enhancement

Slide 23

Slide 23 text

@duffleit SSR Slow Rendering Time Browser Hydration πŸ“„ πŸš€

Slide 24

Slide 24 text

@duffleit Frontend Communication Browser

Slide 25

Slide 25 text

@duffleit Frontend Communication Browser

Slide 26

Slide 26 text

@duffleit Frontend Communication Browser

Slide 27

Slide 27 text

@duffleit Frontend Communication Browser πŸ“œ πŸ“œ πŸ“œ πŸ“œ Contract Libs Backward or Forward compatible to avoid Breaking Changes

Slide 28

Slide 28 text

@duffleit πŸͺ’ Integration Patterns β™» Reusage of Global Dependency πŸ’¦ SSR and Hydration βœ‰ Client Side Integration And many more

Slide 29

Slide 29 text

@duffleit Micro Frontends are a technical challenge with is basically solved.

Slide 30

Slide 30 text

@duffleit Micro Frontends are a technical challenge with is basically solved.* *famous last words

Slide 31

Slide 31 text

@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

Slide 32

Slide 32 text

@duffleit Product Search Checkout Delivery Progress πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ”— 🀯 🀯 🀯 Team Vertical Limited by Cognitive Load

Slide 33

Slide 33 text

@duffleit Product Search Checkout Delivery Progress πŸ‘§ πŸ§‘ πŸ§‘ πŸ”— Product Catalogue Rating Basket πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘

Slide 34

Slide 34 text

@duffleit Checkout Delivery Progress πŸ‘§ πŸ§‘ πŸ§‘ πŸ”— πŸ”— Product Catalogue Rating Basket πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘

Slide 35

Slide 35 text

@duffleit Checkout Delivery Progress πŸ‘§ πŸ§‘ πŸ§‘ Product Catalogue Rating Basket πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘

Slide 36

Slide 36 text

@duffleit Checkout Delivery Progress πŸ‘§ πŸ§‘ πŸ§‘ Rating ⭐ Product πŸ₯­ Basket πŸ› Product Catalogue Rating Basket πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ Product Detail

Slide 37

Slide 37 text

@duffleit πŸ‘§ πŸ§‘ πŸ§‘ Rating ⭐ Product πŸ₯­ Basket πŸ› Product Catalogue Rating Basket Product Detail πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘

Slide 38

Slide 38 text

@duffleit πŸ‘§ πŸ§‘ πŸ§‘ Rating ⭐ Product πŸ₯­ Basket πŸ› Product Catalogue Rating Basket Product Detail Rating ⭐ Product πŸ₯­ πŸ› Product Search Rating Basket Product Search Rating ⭐ Product πŸ₯­ πŸ› πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘

Slide 39

Slide 39 text

@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.

Slide 40

Slide 40 text

@duffleit πŸ‘§ πŸ§‘ πŸ§‘ Rating ⭐ Product πŸ₯­ Basket πŸ› Product Catalogue Rating Basket Product Detail Rating ⭐ Product πŸ₯­ πŸ› Product Search Rating Basket Product Search Rating ⭐ Product πŸ₯­ πŸ› πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘

Slide 41

Slide 41 text

@duffleit πŸ‘§ πŸ§‘ πŸ§‘ Rating ⭐ Product πŸ₯­ Basket πŸ› Product Catalogue Rating Basket Product Detail Rating ⭐ Product πŸ₯­ πŸ› Product Search Rating Basket Product Search Rating ⭐ Product πŸ₯­ πŸ› πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘

Slide 42

Slide 42 text

@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

Slide 43

Slide 43 text

@duffleit Product Search Checkout Delivery Progress πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ”— 🀯 🀯 🀯 Team Vertical Limited by Cognitive Load

Slide 44

Slide 44 text

@duffleit Product Search Checkout Delivery Progress πŸ‘§ πŸ§‘ πŸ§‘ πŸ”— Product Catalogue Rating Basket πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘

Slide 45

Slide 45 text

@duffleit Product Search Checkout Delivery Progress πŸ‘§ πŸ§‘ πŸ§‘ πŸ”— Product Catalogue Rating Basket πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘

Slide 46

Slide 46 text

@duffleit Product Search Checkout Delivery Progress πŸ‘§ πŸ§‘ πŸ§‘ πŸ”— Product Catalogue Rating Basket πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘

Slide 47

Slide 47 text

@duffleit Product Search Checkout Delivery Progress πŸ‘§ πŸ§‘ πŸ§‘ πŸ”— Product Catalogue Rating Basket πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ“œ Backend For Frontend Value Stream

Slide 48

Slide 48 text

@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.

Slide 49

Slide 49 text

@duffleit Product Search πŸ‘§ πŸ§‘ πŸ§‘ πŸ”— Product Catalogue Rating Basket πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ Checkout Delivery Progress

Slide 50

Slide 50 text

@duffleit Product Search πŸ‘§ πŸ§‘ πŸ§‘ πŸ”— Product Catalogue Rating Basket πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ Checkout πŸ”— πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ Deilvery πŸ”— πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘

Slide 51

Slide 51 text

@duffleit So many thing to consider, Let’s sum up.

Slide 52

Slide 52 text

@duffleit We possess most of the technical foundations necessary to successfully build Micro Frontends.

Slide 53

Slide 53 text

@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.

Slide 54

Slide 54 text

@duffleit πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ Autonomous Teams USER πŸ’ƒ Useful vertical slices frequently do not align with the expected frontend channel experience. πŸ‘§ πŸ§‘ πŸ§‘

Slide 55

Slide 55 text

@duffleit Micro Frontends address the sociotechnical challenge of enabling fully end-to-end verticalized organizations, a situation we rarely encounter in practice.

Slide 56

Slide 56 text

@duffleit πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ πŸ‘§ πŸ§‘ πŸ§‘ Autonomous Teams USER πŸ’ƒ πŸ‘§ πŸ§‘ πŸ§‘

Slide 57

Slide 57 text

@duffleit The more your value streams differ from your user flows, the less Micro Frontends are the answer.

Slide 58

Slide 58 text

@duffleit DAVID LEITNER Coding Architect πŸ‘‹ [email protected] 🌎 @duffleit