TurboModule lazy loading vs eager startup
why lazy module init speeds startup.
legacy modules are instantiated eagerly at launch; TurboModules initialize only when JS first accesses them, so unused modules cost nothing at startup.
WHAT THIS TESTS The interviewer wants a focused explanation of how on-demand initialization, enabled by the new architecture, reduces the work done at app launch versus the legacy eager model.
A GOOD ANSWER COVERS A TurboModule is a native module under React Native's new architecture, backed by JSI so JavaScript can call it directly and synchronously without the old serialized asynchronous bridge. The startup advantage comes from lazy loading. With traditional native modules, the framework typically instantiates and registers all of them when the app launches, so every module pays its construction and setup cost up front, even ones the user never triggers in a given session. TurboModules instead are created the first time JavaScript actually accesses the module by name; the runtime resolves and initializes it on demand. As a result, app launch only initializes the modules needed immediately, deferring the rest until and unless they are used. In a large app with dozens of native modules this can noticeably cut initialization time and improve time-to-interactive, because the startup path no longer waits on modules irrelevant to the first screen.
COMMON WRONG ANSWERS Saying legacy native modules also lazy-load by default is incorrect; the eager registration is precisely what TurboModules improve on. Claiming lazy loading meaningfully slows real calls overstates the one-time, tiny first-access cost. Confusing the lazy-loading benefit with Fabric's rendering improvements mixes two separate parts of the new architecture. Believing lazy loading reduces memory at runtime for used modules is beside the point; the gain is at startup for unused ones.
LIKELY FOLLOW-UPS When is a TurboModule actually initialized? On first JS access by name. Does lazy loading change call performance after init? No, after the first access it behaves like any JSI call. Which architecture piece handles UI? Fabric, separately from TurboModules.
ONE CONCRETE EXAMPLE An app bundles modules for payments, maps, camera, and analytics, but the launch screen only needs analytics. With legacy modules all four initialize at startup; with TurboModules only analytics initializes at launch, and payments or camera initialize later when a user first opens those features, so cold start is faster.
Get five bites like this every day.
Tezvyn delivers a daily feed of 60-second tech bites with quizzes to lock in what you learn.