The legacy React Native Bridge architecture
knowing the old three-thread Bridge model.
JS, native, and shadow threads communicate via an async, batched, JSON-serialized Bridge.
calling the Bridge synchronous, ignoring serialization cost, or confusing it with JSI.
WHAT THIS TESTS The interviewer wants to confirm you understand how the original React Native moved data between JavaScript and native code, and why that design created performance ceilings that motivated the new architecture.
A GOOD ANSWER COVERS The legacy architecture runs on three main threads. The JS thread executes your React code in a JavaScript engine such as JSC. The main or UI thread owns native views and user input. A background shadow thread runs the Yoga layout engine to translate Flexbox styles into concrete frames. These threads share no memory, so they communicate exclusively through the Bridge. The Bridge serializes every message into JSON strings, queues them, and delivers them asynchronously in batches. Its responsibilities are carrying native module method calls from JS to native, returning callbacks, and shipping computed UI mutations to the main thread. Because everything is asynchronous and serialized, JS can never synchronously read a native value, every payload pays a stringify and parse cost, and a flood of messages, for example during fast scrolling or animations driven from JS, congests the Bridge and causes dropped frames.
COMMON WRONG ANSWERS Calling the Bridge synchronous is wrong; its asynchrony is the defining trait and the source of many limits. Saying threads share memory misses why serialization is required. Conflating the Bridge with JSI or Fabric describes the new architecture, not the original.
LIKELY FOLLOW-UPS Why can't you write synchronous native calls on the Bridge? Because messages are queued and processed asynchronously, so there is no return path in the same tick. How did Animated mitigate Bridge congestion? With useNativeDriver, which sends the animation to native once and runs it off the JS thread. What replaced the Bridge? JSI plus TurboModules and Fabric, enabling synchronous, serialization-free calls.
ONE CONCRETE EXAMPLE A gesture-driven animation updating position on every frame from JS pushes hundreds of serialized messages per second across the Bridge. The queue backs up, frames drop, and the animation stutters, illustrating the core bottleneck that JSI was designed to remove.
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.