
How to build real-time applications using micro-frontends with Peter Eijgermans
In this episode of Micro-Frontends in the Trenches, Luca Mezzalira sits down with Peter Eijgermans to unpack a five-year journey building Spoorviewer, the real-time dashboard powering operations at the Dutch Railways (NS / ProRail).Peter walks through how four teams modernized a slowing Angular monolith into a dashboard-style shell hosting five remote applications, loaded dynamically at runtime via Module Federation. You'll hear what worked, what didn't, and why the first attempt with Web Components (Custom Elements) failed to deliver on performance.CHAPTERS00:00 Cold open: shipping without fear01:26 Welcome and introductions03:02 Meet Peter: full-stack, real-time data, and OIDC05:16 Spoorviewer: a dashboard, not a page-based app07:22 The five remote apps: Spoorzicht, Plan, Baanvak, Track Occupancy, Maintenance10:34 Why micro-frontends? The organizational and technical breaking point12:47 The performance trap of Custom Elements14:54 Switching to Module Federation: Lighthouse 30 → 7516:50 Domain-Driven Design and identifying overlapping boundaries20:11 Recap: shell, lazy loading, DDD, and team independence23:30 WebSockets aligned to bounded contexts26:46 How developers felt about the move to micro-frontends28:11 Guardrails: framework alignment, versioning, shared libraries31:14 From client-side OIDC to a Backend-for-Frontend "Lego brick"34:27 Drawbacks and lessons learned along the way36:41 Architecture surfaces friction, it doesn't create it39:17 AI on the horizon: predicting train delays40:39 AI in the developer workflow42:31 Closing reflections: start with good design43:21 Wrap-up and outro





