DEV Community

Discussion on: ELI5: v8 Isolates and Contexts

Collapse
 
zspencer profile image
Zee

Hmm, I wasn't aware that a Context is a singleton within an Isolate, but I guess that makes sense that they're a mechanism for sharing data across code in an isolate.

Maybe that's how Chrome winds up sharing state between web pages and web workers on the page?

Thread Thread
 
aafrey profile image
aafrey

@Zee Maybe they aren't? That's just my understanding which could certainly be incorrect. It's difficult to find info outside of the limited description in the v8 API docs of both classes. It seems NodeJS briefly supported Isolates, but no longer, and no Chrome or v8 documentation that I've seen really discusses them in detail even though they seem to be a really huge idea inside v8.

Here is some documentation I found, but it was surprisingly hard to locate!!
v8docs.nodesource.com/node-10.6/d5...
v8docs.nodesource.com/node-10.6/df...

Thread Thread
 
zspencer profile image
Zee

I wonder if this is an instance where a more concrete example of the use case you're trying to apply with Isolates or Contexts would be helpful?

I'm definitely tilting towards the edge of my understanding and competence though, but hopefully I can at least quack a bit and the rubber duck will go on :)

Thread Thread
 
aafrey profile image
aafrey

No particular use-case at the moment, but I was reading more about the Cloudflare Worker runtime which explains how they are using v8 Isolates to create sandboxed serverless workers. Some details here: blog.cloudflare.com/serverless-per...

Thread Thread
 
aafrey profile image
aafrey

@Zee i found some additional examples in NodeJS source, using Isolates in the experimental Workers API: github.com/nodejs/node/blob/master...

Thread Thread
 
aafrey profile image
aafrey

some more details provided by a member of the v8 team, Yang Guo.

twitter.com/hashseed/status/106875...

Thread Thread
 
zspencer profile image
Zee

Nice, that feels like it clears things up a bit more!