This article is pretty much spot-on. I'm taking a similar direction with the architecture of my startup. However, I'd like to point out one mistake. Your implementation of a linked list is suboptimal. A better implementation would be as a tree with a branching factor of one. That way, you don't expose object IDs that could then be cached by the user of the data structure. Hope this helps!