Christopher, did you ever take a look at acid-state [1]? It seems to me that it solves the same problem you have but, instead of Client <-> JSON <-> Server (going through the web) it solves Server <-> Storage <-> Server (going through time) Cheers, [1] http://hackage.haskell.org/package/acid-state -- Felipe.