https://baharzahdhani.medium.com/system-design-interview-basics-distributed-system-fundamentals-4fc4f6191cbc