Distributed locks — when do you need them and what are the risks? | LetsGit.IT