1. CRIU is working on incremental checkpoints to allow for a similar sharing: <a href="http:&#x2F;&#x2F;criu.org&#x2F;Incremental_dumps" rel="nofollow">http:&#x2F;&#x2F;criu.org&#x2F;Incremental_dumps</a> . On the filesystem layer, Docker&#x27;s commits are definitely diffs I believe.<p>2. If you have internal sockets, they should be fully functional (for example, you spawn a child_process that you connect and talk to -- which is cool for debugging streams, etc). If the socket exists to the outside, I <i>believe</i> it should be fine as long as the checkpoint happens between messages. However, this is an area that both CRIU ( <a href="http:&#x2F;&#x2F;criu.org&#x2F;TCP_connection" rel="nofollow">http:&#x2F;&#x2F;criu.org&#x2F;TCP_connection</a> ) and we are working on pretty heavily to make talking to the &quot;outside world&quot; reasonable (we&#x27;ll be sharing more on this soon).<p>3. There are a bunch of uses cases (from a place to easily try new packages since Tonic actually out of the box has access to every version of every package on npm, to writing live documentation, etc). A large inspiration for me was noticing that most programmers seem to start their projects in a REPL, then at some point have to make the transition to a file. We&#x27;re hoping Tonic can stretch out that time period you spend in the friendlier repl environment (since tonic is closer to using an actual file), and best of all, when you&#x27;re done you can actually save the repl as a node module and so you have the beginnings of your project instead of starting over.