SlideShare a Scribd company logo
Live peacefully with your legacy
Ran Wahle
About me
● Programmer at Tikal
● Old
● Working for world peace
Not that peace
That peace - Between old and new
Let’s stop with militant sayings such as...
Legacy code should Move away
Who wrote this sh..t ?
We are in 2018. Why use ...
You can’t beat legacy
Rewriting is expensive
You’ll have to reverse engineer old code
Your management probably won’t let you
Micro frontends to the rescue
If you can’t beat it, move away
Have another micro app
Interact with it
What do we need?
SPA look & feel
“Router-outlet” for micro apps
Micro-service like integration
Using legacy code with micro frontends
Our demo
Three micro apps
World cup teams (jQuery)
World cup games (angular 6)
World cup team details (angular 5 & Firebase)
Shell app using micro frontends library
We had to use iframes…
Because we are dealing with legacy
Make shell App
Register apps
Routing
Each micro app gets its own url
The shell app will present micro app by URL
Routing implementation
Listen to popstate event
Match route
Invoke handler
Read more
Blend legacy app in
Inner routes
Whenever route change inside a micro app,
the browser address bar should reflect that.
When we reload, the micro app should be at
Its last route
Events
Run setState on the micro-app
Micro-app side (angular)
Change route in micro app
Service bus
Let’s reuse legacy app services
We have used iframe but...
Iframes are too isolated
We cannot really control their styling
Heavy bundles
Their performance are poor
Web components
Less isolated but still independent
We may create custom element
Inside it, we may use whatever we want
We can give up the global pub-sub and use the DOM
But… it won’t help us with our efw years old legacy
Demo - Run one app as component
Let’s wrap
We can use micro frontends to extend legacy code
We blended some micro apps into one SPA
We worked with inner route
We have reused services
And achieved world peace(?)
Thank you
Ran Wahle
@ranwahle
ranw@tikalk.com
ran.wahle@gmail.com
Demo code: https://github.com/ranwahle/micro-frontends-demo
Ad

Recommended

Pwa is the future. The Presentation I gave at PWA event
Pwa is the future. The Presentation I gave at PWA event
Ahmed Kaludi
 
Addon sdk content scripts
Addon sdk content scripts
Irvin Chen
 
Spawny: A New Approach to Logins
Spawny: A New Approach to Logins
Samsung Open Source Group
 
Deccan ruby-conf-talk
Deccan ruby-conf-talk
prchaudhari
 
Infinum - Building API based apps without an API
Infinum - Building API based apps without an API
Infinum
 
AWS re:Invent "The secrets to building and delivering amazing apps at scale"
AWS re:Invent "The secrets to building and delivering amazing apps at scale"
💻 Javier Garza
 
Transformação Digital com API Management
Transformação Digital com API Management
Gustavo Zimmermann (MVP)
 
Outpost24 webinar - Api security
Outpost24 webinar - Api security
Outpost24
 
API Strategy & Practice Conference - API Consumption from the Hackathon Trenches
API Strategy & Practice Conference - API Consumption from the Hackathon Trenches
Alex Gaber
 
Apache Camel & The Art of Entreprise Integration
Apache Camel & The Art of Entreprise Integration
Abdellatif BOUCHAMA
 
APIdays Paris 2019 - The Mother of All APIs - From Engelbart to the Present b...
APIdays Paris 2019 - The Mother of All APIs - From Engelbart to the Present b...
apidays
 
Learn react the right way
Learn react the right way
Mohamed Thareef Bin Ubaid
 
Reusable APIs
Reusable APIs
CA API Management
 
API Lifecycle Management
API Lifecycle Management
Postman
 
Ng talk
Ng talk
Aymene Bennour
 
Android : Background Processing
Android : Background Processing
shekhaman
 
apidays LIVE Hong Kong 2021 - Better API DX with a CLI by Phil Nash, Twilio
apidays LIVE Hong Kong 2021 - Better API DX with a CLI by Phil Nash, Twilio
apidays
 
Air apps-and-smart-cards
Air apps-and-smart-cards
Zaid Al-Dabbagh
 
Building APIs with Node.js and MonogDB
Building APIs with Node.js and MonogDB
Charlie Key
 
apidays LIVE New York 2021 - Designing API's: Less Data is More! by Damir Svr...
apidays LIVE New York 2021 - Designing API's: Less Data is More! by Damir Svr...
apidays
 
Welcome Note by Abhinav Asthana, CEO at Postman
Welcome Note by Abhinav Asthana, CEO at Postman
Postman
 
Building REST APIs that don't suck for modern day SPAs
Building REST APIs that don't suck for modern day SPAs
Abati Adewale
 
Bpstudy ajnreview
Bpstudy ajnreview
Kazunori Sato
 
Our Technical Proficiencies
Our Technical Proficiencies
Virti Infotech Pvt. Ltd.
 
Php development
Php development
mariaopenwave
 
Micro frontends
Micro frontends
Assaf Gannon
 
MicroFrontend With Iframes, dirty laundry that can be cleaned
MicroFrontend With Iframes, dirty laundry that can be cleaned
Ran Wahle
 
Building Micro-Frontends: Scaling Teams and Projects Empowering Developers 1s...
Building Micro-Frontends: Scaling Teams and Projects Empowering Developers 1s...
pyrageisari
 
JSFest 2019: Technology agnostic microservices at SPA frontend
JSFest 2019: Technology agnostic microservices at SPA frontend
Vlad Fedosov
 
"Micro-frontends from A to Z. How and Why we use Micro-frontends in Namecheap...
"Micro-frontends from A to Z. How and Why we use Micro-frontends in Namecheap...
Fwdays
 

More Related Content

What's hot (17)

API Strategy & Practice Conference - API Consumption from the Hackathon Trenches
API Strategy & Practice Conference - API Consumption from the Hackathon Trenches
Alex Gaber
 
Apache Camel & The Art of Entreprise Integration
Apache Camel & The Art of Entreprise Integration
Abdellatif BOUCHAMA
 
APIdays Paris 2019 - The Mother of All APIs - From Engelbart to the Present b...
APIdays Paris 2019 - The Mother of All APIs - From Engelbart to the Present b...
apidays
 
Learn react the right way
Learn react the right way
Mohamed Thareef Bin Ubaid
 
Reusable APIs
Reusable APIs
CA API Management
 
API Lifecycle Management
API Lifecycle Management
Postman
 
Ng talk
Ng talk
Aymene Bennour
 
Android : Background Processing
Android : Background Processing
shekhaman
 
apidays LIVE Hong Kong 2021 - Better API DX with a CLI by Phil Nash, Twilio
apidays LIVE Hong Kong 2021 - Better API DX with a CLI by Phil Nash, Twilio
apidays
 
Air apps-and-smart-cards
Air apps-and-smart-cards
Zaid Al-Dabbagh
 
Building APIs with Node.js and MonogDB
Building APIs with Node.js and MonogDB
Charlie Key
 
apidays LIVE New York 2021 - Designing API's: Less Data is More! by Damir Svr...
apidays LIVE New York 2021 - Designing API's: Less Data is More! by Damir Svr...
apidays
 
Welcome Note by Abhinav Asthana, CEO at Postman
Welcome Note by Abhinav Asthana, CEO at Postman
Postman
 
Building REST APIs that don't suck for modern day SPAs
Building REST APIs that don't suck for modern day SPAs
Abati Adewale
 
Bpstudy ajnreview
Bpstudy ajnreview
Kazunori Sato
 
Our Technical Proficiencies
Our Technical Proficiencies
Virti Infotech Pvt. Ltd.
 
Php development
Php development
mariaopenwave
 
API Strategy & Practice Conference - API Consumption from the Hackathon Trenches
API Strategy & Practice Conference - API Consumption from the Hackathon Trenches
Alex Gaber
 
Apache Camel & The Art of Entreprise Integration
Apache Camel & The Art of Entreprise Integration
Abdellatif BOUCHAMA
 
APIdays Paris 2019 - The Mother of All APIs - From Engelbart to the Present b...
APIdays Paris 2019 - The Mother of All APIs - From Engelbart to the Present b...
apidays
 
API Lifecycle Management
API Lifecycle Management
Postman
 
Android : Background Processing
Android : Background Processing
shekhaman
 
apidays LIVE Hong Kong 2021 - Better API DX with a CLI by Phil Nash, Twilio
apidays LIVE Hong Kong 2021 - Better API DX with a CLI by Phil Nash, Twilio
apidays
 
Air apps-and-smart-cards
Air apps-and-smart-cards
Zaid Al-Dabbagh
 
Building APIs with Node.js and MonogDB
Building APIs with Node.js and MonogDB
Charlie Key
 
apidays LIVE New York 2021 - Designing API's: Less Data is More! by Damir Svr...
apidays LIVE New York 2021 - Designing API's: Less Data is More! by Damir Svr...
apidays
 
Welcome Note by Abhinav Asthana, CEO at Postman
Welcome Note by Abhinav Asthana, CEO at Postman
Postman
 
Building REST APIs that don't suck for modern day SPAs
Building REST APIs that don't suck for modern day SPAs
Abati Adewale
 

Similar to Using legacy code with micro frontends (20)

Micro frontends
Micro frontends
Assaf Gannon
 
MicroFrontend With Iframes, dirty laundry that can be cleaned
MicroFrontend With Iframes, dirty laundry that can be cleaned
Ran Wahle
 
Building Micro-Frontends: Scaling Teams and Projects Empowering Developers 1s...
Building Micro-Frontends: Scaling Teams and Projects Empowering Developers 1s...
pyrageisari
 
JSFest 2019: Technology agnostic microservices at SPA frontend
JSFest 2019: Technology agnostic microservices at SPA frontend
Vlad Fedosov
 
"Micro-frontends from A to Z. How and Why we use Micro-frontends in Namecheap...
"Micro-frontends from A to Z. How and Why we use Micro-frontends in Namecheap...
Fwdays
 
Bd conf sencha touch workshop
Bd conf sencha touch workshop
James Pearce
 
Building Micro-Frontends: Scaling Teams and Projects Empowering Developers 1s...
Building Micro-Frontends: Scaling Teams and Projects Empowering Developers 1s...
azmeelbronii
 
JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...
JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...
JSFestUA
 
An Introduction to Sencha Touch
An Introduction to Sencha Touch
James Pearce
 
Grails for hipsters
Grails for hipsters
Robert Fletcher
 
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
KNOWARTH - Software Development Company
 
Create a mobile web app with Sencha Touch
Create a mobile web app with Sencha Touch
James Pearce
 
How to migrate large project from Angular to React
How to migrate large project from Angular to React
Tomasz Bak
 
A mobile web app for Android in 75 minutes
A mobile web app for Android in 75 minutes
James Pearce
 
Bridging the Gap: Single-Page Apps and AEM
Bridging the Gap: Single-Page Apps and AEM
rbl002
 
Component based User Interface Rendering with State Caching Between Routes
Component based User Interface Rendering with State Caching Between Routes
IRJET Journal
 
DIGIT Noe 2016 - Overview of front end development today
DIGIT Noe 2016 - Overview of front end development today
Bojan Veljanovski
 
Refactoring to a Single Page Application
Refactoring to a Single Page Application
Codemotion
 
Refactoring to a SPA
Refactoring to a SPA
Marcello Teodori
 
Progressive Web Apps. What, why and how
Progressive Web Apps. What, why and how
Riza Fahmi
 
MicroFrontend With Iframes, dirty laundry that can be cleaned
MicroFrontend With Iframes, dirty laundry that can be cleaned
Ran Wahle
 
Building Micro-Frontends: Scaling Teams and Projects Empowering Developers 1s...
Building Micro-Frontends: Scaling Teams and Projects Empowering Developers 1s...
pyrageisari
 
JSFest 2019: Technology agnostic microservices at SPA frontend
JSFest 2019: Technology agnostic microservices at SPA frontend
Vlad Fedosov
 
"Micro-frontends from A to Z. How and Why we use Micro-frontends in Namecheap...
"Micro-frontends from A to Z. How and Why we use Micro-frontends in Namecheap...
Fwdays
 
Bd conf sencha touch workshop
Bd conf sencha touch workshop
James Pearce
 
Building Micro-Frontends: Scaling Teams and Projects Empowering Developers 1s...
Building Micro-Frontends: Scaling Teams and Projects Empowering Developers 1s...
azmeelbronii
 
JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...
JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...
JSFestUA
 
An Introduction to Sencha Touch
An Introduction to Sencha Touch
James Pearce
 
Create a mobile web app with Sencha Touch
Create a mobile web app with Sencha Touch
James Pearce
 
How to migrate large project from Angular to React
How to migrate large project from Angular to React
Tomasz Bak
 
A mobile web app for Android in 75 minutes
A mobile web app for Android in 75 minutes
James Pearce
 
Bridging the Gap: Single-Page Apps and AEM
Bridging the Gap: Single-Page Apps and AEM
rbl002
 
Component based User Interface Rendering with State Caching Between Routes
Component based User Interface Rendering with State Caching Between Routes
IRJET Journal
 
DIGIT Noe 2016 - Overview of front end development today
DIGIT Noe 2016 - Overview of front end development today
Bojan Veljanovski
 
Refactoring to a Single Page Application
Refactoring to a Single Page Application
Codemotion
 
Progressive Web Apps. What, why and how
Progressive Web Apps. What, why and how
Riza Fahmi
 
Ad

More from Ran Wahle (20)

Implementing promises with typescripts, step by step
Implementing promises with typescripts, step by step
Ran Wahle
 
HTML dialog element demonstration session
HTML dialog element demonstration session
Ran Wahle
 
Into React-DOM.pptx
Into React-DOM.pptx
Ran Wahle
 
Lets go to the background
Lets go to the background
Ran Wahle
 
Permissions api
Permissions api
Ran Wahle
 
Lets go vanilla
Lets go vanilla
Ran Wahle
 
Custom elements
Custom elements
Ran Wahle
 
Web workers
Web workers
Ran Wahle
 
Ngrx one-effect
Ngrx one-effect
Ran Wahle
 
Angular migration
Angular migration
Ran Wahle
 
Javascript async / await Frontend-IL
Javascript async / await Frontend-IL
Ran Wahle
 
Boost js state management
Boost js state management
Ran Wahle
 
Angular 2.0 change detection
Angular 2.0 change detection
Ran Wahle
 
Code migration from Angular 1.x to Angular 2.0
Code migration from Angular 1.x to Angular 2.0
Ran Wahle
 
Async patterns in javascript
Async patterns in javascript
Ran Wahle
 
Angular js 2
Angular js 2
Ran Wahle
 
Asyncawait in typescript
Asyncawait in typescript
Ran Wahle
 
Angular%201%20to%20angular%202
Angular%201%20to%20angular%202
Ran Wahle
 
What’s new in angular 2 - From FrontEnd IL Meetup
What’s new in angular 2 - From FrontEnd IL Meetup
Ran Wahle
 
angularJs Workshop
angularJs Workshop
Ran Wahle
 
Implementing promises with typescripts, step by step
Implementing promises with typescripts, step by step
Ran Wahle
 
HTML dialog element demonstration session
HTML dialog element demonstration session
Ran Wahle
 
Into React-DOM.pptx
Into React-DOM.pptx
Ran Wahle
 
Lets go to the background
Lets go to the background
Ran Wahle
 
Permissions api
Permissions api
Ran Wahle
 
Lets go vanilla
Lets go vanilla
Ran Wahle
 
Custom elements
Custom elements
Ran Wahle
 
Web workers
Web workers
Ran Wahle
 
Ngrx one-effect
Ngrx one-effect
Ran Wahle
 
Angular migration
Angular migration
Ran Wahle
 
Javascript async / await Frontend-IL
Javascript async / await Frontend-IL
Ran Wahle
 
Boost js state management
Boost js state management
Ran Wahle
 
Angular 2.0 change detection
Angular 2.0 change detection
Ran Wahle
 
Code migration from Angular 1.x to Angular 2.0
Code migration from Angular 1.x to Angular 2.0
Ran Wahle
 
Async patterns in javascript
Async patterns in javascript
Ran Wahle
 
Angular js 2
Angular js 2
Ran Wahle
 
Asyncawait in typescript
Asyncawait in typescript
Ran Wahle
 
Angular%201%20to%20angular%202
Angular%201%20to%20angular%202
Ran Wahle
 
What’s new in angular 2 - From FrontEnd IL Meetup
What’s new in angular 2 - From FrontEnd IL Meetup
Ran Wahle
 
angularJs Workshop
angularJs Workshop
Ran Wahle
 
Ad

Recently uploaded (20)

Making significant Software Architecture decisions
Making significant Software Architecture decisions
Bert Jan Schrijver
 
What is data visualization and how data visualization tool can help.pptx
What is data visualization and how data visualization tool can help.pptx
Varsha Nayak
 
dp-700 exam questions sample docume .pdf
dp-700 exam questions sample docume .pdf
pravkumarbiz
 
Looking for a BIRT Report Alternative Here’s Why Helical Insight Stands Out.pdf
Looking for a BIRT Report Alternative Here’s Why Helical Insight Stands Out.pdf
Varsha Nayak
 
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Technologies
 
OpenTelemetry 101 Cloud Native Barcelona
OpenTelemetry 101 Cloud Native Barcelona
Imma Valls Bernaus
 
Advanced Token Development - Decentralized Innovation
Advanced Token Development - Decentralized Innovation
arohisinghas720
 
Who will create the languages of the future?
Who will create the languages of the future?
Jordi Cabot
 
Microsoft Business-230T01A-ENU-PowerPoint_01.pptx
Microsoft Business-230T01A-ENU-PowerPoint_01.pptx
soulamaabdoulaye128
 
How Insurance Policy Management Software Streamlines Operations
How Insurance Policy Management Software Streamlines Operations
Insurance Tech Services
 
Transmission Media. (Computer Networks)
Transmission Media. (Computer Networks)
S Pranav (Deepu)
 
What is data visualization and how data visualization tool can help.pdf
What is data visualization and how data visualization tool can help.pdf
Varsha Nayak
 
Artificial Intelligence Workloads and Data Center Management
Artificial Intelligence Workloads and Data Center Management
SandeepKS52
 
Code and No-Code Journeys: The Coverage Overlook
Code and No-Code Journeys: The Coverage Overlook
Applitools
 
GDG Douglas - Google AI Agents: Your Next Intern?
GDG Douglas - Google AI Agents: Your Next Intern?
felipeceotto
 
Meet You in the Middle: 1000x Performance for Parquet Queries on PB-Scale Dat...
Meet You in the Middle: 1000x Performance for Parquet Queries on PB-Scale Dat...
Alluxio, Inc.
 
Open Source Software Development Methods
Open Source Software Development Methods
VICTOR MAESTRE RAMIREZ
 
Download Adobe Illustrator Crack free for Windows 2025?
Download Adobe Illustrator Crack free for Windows 2025?
grete1122g
 
Reimagining Software Development and DevOps with Agentic AI
Reimagining Software Development and DevOps with Agentic AI
Maxim Salnikov
 
Insurance Underwriting Software Enhancing Accuracy and Efficiency
Insurance Underwriting Software Enhancing Accuracy and Efficiency
Insurance Tech Services
 
Making significant Software Architecture decisions
Making significant Software Architecture decisions
Bert Jan Schrijver
 
What is data visualization and how data visualization tool can help.pptx
What is data visualization and how data visualization tool can help.pptx
Varsha Nayak
 
dp-700 exam questions sample docume .pdf
dp-700 exam questions sample docume .pdf
pravkumarbiz
 
Looking for a BIRT Report Alternative Here’s Why Helical Insight Stands Out.pdf
Looking for a BIRT Report Alternative Here’s Why Helical Insight Stands Out.pdf
Varsha Nayak
 
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Technologies
 
OpenTelemetry 101 Cloud Native Barcelona
OpenTelemetry 101 Cloud Native Barcelona
Imma Valls Bernaus
 
Advanced Token Development - Decentralized Innovation
Advanced Token Development - Decentralized Innovation
arohisinghas720
 
Who will create the languages of the future?
Who will create the languages of the future?
Jordi Cabot
 
Microsoft Business-230T01A-ENU-PowerPoint_01.pptx
Microsoft Business-230T01A-ENU-PowerPoint_01.pptx
soulamaabdoulaye128
 
How Insurance Policy Management Software Streamlines Operations
How Insurance Policy Management Software Streamlines Operations
Insurance Tech Services
 
Transmission Media. (Computer Networks)
Transmission Media. (Computer Networks)
S Pranav (Deepu)
 
What is data visualization and how data visualization tool can help.pdf
What is data visualization and how data visualization tool can help.pdf
Varsha Nayak
 
Artificial Intelligence Workloads and Data Center Management
Artificial Intelligence Workloads and Data Center Management
SandeepKS52
 
Code and No-Code Journeys: The Coverage Overlook
Code and No-Code Journeys: The Coverage Overlook
Applitools
 
GDG Douglas - Google AI Agents: Your Next Intern?
GDG Douglas - Google AI Agents: Your Next Intern?
felipeceotto
 
Meet You in the Middle: 1000x Performance for Parquet Queries on PB-Scale Dat...
Meet You in the Middle: 1000x Performance for Parquet Queries on PB-Scale Dat...
Alluxio, Inc.
 
Open Source Software Development Methods
Open Source Software Development Methods
VICTOR MAESTRE RAMIREZ
 
Download Adobe Illustrator Crack free for Windows 2025?
Download Adobe Illustrator Crack free for Windows 2025?
grete1122g
 
Reimagining Software Development and DevOps with Agentic AI
Reimagining Software Development and DevOps with Agentic AI
Maxim Salnikov
 
Insurance Underwriting Software Enhancing Accuracy and Efficiency
Insurance Underwriting Software Enhancing Accuracy and Efficiency
Insurance Tech Services
 

Using legacy code with micro frontends