https://kubernetes.io/blog/2015/06/the-distributed-system-toolkit-patterns/
https://gruuuuu.github.io/cloud/design-pattern/