Scaling an application without microfrontends
summary
Yandex Direct runs a frontend with several million lines of code and scales without microfrontends by imposing strict module boundaries, one-way imports and a small public API per module, plus code/style/data isolation and controlled global effects. Deployment uses a shared runtime for modules (TypeScript, React, Redux etc.) and automated enforcement with ESLint, stylelint and dependency-cruiser. The approach follows feature sliced design, uses CQRS-like data access, CSS Modules or scoped styles, and trades runtime size for developer ergonomics.
AI-written summary · about
chapters (35)
- 0:00intro
- 0:22preamble
- 1:18contents
- 1:59about maksim
- 2:44frontend of yandex direct
- 3:19the scalability issue
- 4:38complexity in a regular monolith
- 5:02the source of complexity
- 5:52how about adding a microfrontend?
- 6:26advantages of microfrontends
- 8:05microfrontends make every project better?
- 8:33the cost of microfrontends
- 9:59glorious monolith
- 12:02the path to the glorious monolith
- 13:07requirements for modules
- 13:30module structure
- 14:48one-way imports for segments
- 15:54the benefits of segments
- 16:33module isolation
- 17:46code isolation
- 18:57entrypoint
- 19:27public api
- 21:31the size of public api
- 22:35styles isolation
- 23:22options to isolate styles
- 23:57example rules for css modules
- 25:15data isolation
- 28:15runtime for modules
- 29:15runtime example
- 30:08the size of runtime
- 31:07breaking code into modules
- 33:08feature sliced design
- 34:59summary
- 36:36what's next?
- 37:21thank you!
related talks
36mMicrofrontends: Scalability Savior or Unmanageable Maze?
36mMicrofrontends: Scalability Savior or Unmanageable Maze?
25mMicrofrontends: a Modern Approach to Complex Web Applications
13mMicro Frontends Without Chaos: Architecture That Survives Scale
26mScaling Applications with Microfrontends
47mMicro Frontends Unmasked
44mApplications instead of libraries: Micro frontends implemented through module federation
32mYou don't know Microfrontends
