Objects live in Vats. Realms are a legacy accident due to poor browser engineering and do not control the object addressing space. Vats can only communicate through message passing. Messages clone objects, sometimes transfering their underlying data. Ever-so-slowly ECMAScript is growing more powerful to describe the web platform. This kind of modeling is what excites me these days.
Thanks to Allen Wirfs-Brock for correcting my errors in writing this and providing these cool analogies:
A Vat is an address space for objects. An object within a Vat can only reference ("point to") other objects in the same Vat. Realms are just a decoration on some object. Their Realm associations (if any) don’t impact the ability of objects within a Vat to reference each other.
Vat’s are like isolated continents. In theory you can walk from any point to any other point on a continent, but you can’t walk to any other continent. A Realm is like a country with national boundary. Those boundaries don’t actually change the theoretical ability to walk between any two continental points, but parties might use those boundaries as part of a scheme to artificially restrict movement.
(Mark Miller did this long ago in E and the web has a somewhat sloppier version of it, through workers, structured cloning, and having multiple globals, but on the upside is deployed widely.)