-
Notifications
You must be signed in to change notification settings - Fork 1
Enterprise Architecture
In druid individual apps are micro-frontends but share libraries and extensions. Extensions are another category of micro-fronends without components. Instead extensions expose modules that are pulled into the main app extending its capabilities via plugins. This methodology allows the main app to be extended without touching the main app code. Furthermore, it enables the next level of reusability to not only packages but complete feature driven extensions that can be loaded at runtime into an app when needed. This is achieved through a recent advancement in the technology space known as module federation. Module federation drives the ability to orchestrate micro-frontends efficently pulling them into a main shell app.
flowchart LR
druid[druid]-->app1[app1];
druid-->app2[app2];
druid-->app3[app3];
app1-->ext1[extension 1]
app2-->ext1
app3-->ext2[extension 2]
ext1-->p1[plugin]
ext1-->p2[plugin]
ext2-->p3[plugin]
Druid is not limited to using Angular modules. In druid any JavaScript app that suppots module federation can be pulled into the main shell app. Druid can host React, Vue, Svelte, etc. apps when module federation is supported. Furthermore, druid apps can be nested inside one other using module federation.
flowchart LR
ds1[druid app]-->rm1[react app]
ds2[druid app]-->rm1
ds2-->rm2[react app]
ds2-->va1[vue app]
ds3[druid app]-->va1