MICRO ANGULAR APPS
What does it mean?Why do we need it?
Frontend application
Reports
User
Data
Payments
Reports
Service
User
Service
Data
Service
Payments
Service
Backend services
Monolithic Frontends
One team to rule them ALL!
Reports
Team
User
Team
Data
Team
Payments
Team
Front End
Data
Back End
Organisation in Verticals
Encapsulation
Performance
Ownership
Communication
Seamless
Common Resources
Backward Compatible
WHAT CAN WE DO?
IFrames
Web components
IFrames
Performance
Performance
Performance
Performance
Performance
Performance
Web Components
JS encapsulation
Vague definition
Communication
CSS, HTML encapsulation
Our solution
Lazy Load Angular Feature Modules
Pros:
- Cant be used immediately in all Angular current applications
- Provides CSS and HTML encapsulation via ShadowDOM
- JS encapsulation with webpack
- Compatible with Web component standard proposal
Cons:
- Cant use other frameworks for now(maybe Angular-element in the future)
- Angular versions need to be compatible
- Cant load from remote url's... unless... :)
Lazy Load Angular Feature Modules
Module
Container app
Reports team
Module
Module
Webpack build
Share-loader
Payments team
Data team
Module bundle
Independent deployment
Reports team
{ }
Payments team
Data team
All modules loaded at runtime to container app
At runtime all modules share common resources via a global namespace
Discovery service
THANK YOU!
Come again...
deck
By Maor Frankel
deck
- 375