Micro-Frontend Communication: Custom Events vs. Shared Store instances
Updated May 4, 2026
Short answer
In micro-frontend (MFE) architectures, communication should be loosely coupled using native Browser CustomEvents or a 'Bridge' pattern to avoid shared-memory conflicts.
Deep explanation
Sharing a single Pinia instance across MFEs creates a 'Distributed Monolith' where one team's change breaks another's app. A better architectural boundary is to have each MFE manage its own store. For cross-app communication (e.g., 'Product Added to Cart'), the Vue MFE should emit a window.dispatchEvent(new CustomEvent(...)). The Cart MFE listens globally and updates its local state. This ensures each MFE can be versioned and deployed independently.
Unlock with a Pro subscription to view this section.
View pricingReal-world example
No real-world example available yet.
Unlock with a Pro subscription to view this section.
Upgrade to ProCommon mistakes
No common mistakes listed yet.
Unlock with a Pro subscription to view this section.
Upgrade to ProFollow-up questions
No follow-up questions available yet.
Unlock with a Pro subscription to view this section.
Upgrade to Pro