https://www.arunangshudas.com/blog/6-common-mistakes-in-backend-architecture-design/