https://medium.com/@adrianbooth/designing-data-intensive-applications-write-operation-race-conditions-726ca7e35028