Walk through what actually happens when JS calls a native method, old architecture vs. new.
On the old bridge, the call gets serialized to JSON, queued, batched, sent across to the native side asynchronously, executed, and the result serialized back — every hop costs time, and nothing is synchronous. With JSI, a TurboModule is a real C++ object that JS holds a direct reference to; calling a method invokes it through a C++ binding with no JSON serialization and no queue, and it can be synchronous when that is what is needed. The trade-off is complexity — writing a TurboModule properly means dealing with codegen and C++, where an old-style bridge module was closer to plain JS-adjacent glue code.