Example solution using threads - note the (valid) use of blocking in the threads

Revision graph

The revision graph only works with JavaScript-enabled browsers.