https://medium.com/@adrianbooth/designing-data-intensive-applications-strong-isolation-using-serializability-8f4994c0834