This sort of thing has been cropping up in distributed systems quite a bit recently, in the form of CRDTs: commutative replicated data-types. Essentially data structures whose operations commute. This offers a lot of powerful guarantees when it comes to dealing with consistency in a distributed system.<p>They're an interesting concept, and I'd highly recommend reading more about them.<p>The original paper: <a href="http://highscalability.com/blog/2010/12/23/paper-crdts-consistency-without-concurrency-control.html" rel="nofollow">http://highscalability.com/blog/2010/12/23/paper-crdts-consi...</a><p>Their use in League of Legends: <a href="http://highscalability.com/blog/2014/10/13/how-league-of-legends-scaled-chat-to-70-million-players-it-t.html" rel="nofollow">http://highscalability.com/blog/2014/10/13/how-league-of-leg...</a><p>How Riak uses them: <a href="http://aphyr.com/posts/285-call-me-maybe-riak" rel="nofollow">http://aphyr.com/posts/285-call-me-maybe-riak</a>
Occam were heavy on this. In Occam you explicitly stated which parts of your program were sequential and which were parallel (i.e. commutative), sequentialism not assumed. Sadly, Occam is a dead language now; it was too far ahead of its time.
The video presentation of this session is available by clicking through the ToC, or Source Materials <a href="http://dl.acm.org/citation.cfm?doid=2517349.2522712" rel="nofollow">http://dl.acm.org/citation.cfm?doid=2517349.2522712</a>