In one sentence, here's why: humans are notoriously bad at keeping "self" distinct from "other". Egomania, projection (transference), and enmeshment are well-known symptoms of this problem. OK, so I hear you saying, "yeah, but what does this have to do with programming?" It certainly seems absurd to suggest that if we are bad at something we know the most about (our "selves"), how could we possibly say that we have a good approach for the programming analogues - objects, modules, etc. - http://www.artima.com/weblogs/viewpost.jsp?thread=46706 Argue why space base design is better than n-tier design - http://www.google.com/search?q=Space-Based%20Architecture%20and%20The%20End%20of%20Tier-based%20Computing Some key research of google for distributed computation - http://www.infoq.com/news/2007/06/google-scalability Someone think we are not yet (per Oct 2007) have good language support for distibuted computing - http://kasparov.skife.org/blog/2007/10/11/ A blog contain a lot distributed computing information - http://www.highscalability.com/ How Wikipedia manage their site - http://dammit.lt/uc/workbook2007.pdf Google tutorial for Design Distributed System - http://code.google.com/edu/parallel/dsd-tutorial.html http://en.wikipedia.org/wiki/Distributed_hash_table The Hadoop Distributed File System: Architecture and Design - http://hadoop.apache.org/core/docs/r0.18.0/hdfs_design.html http://www.metabrew.com/article/anti-rdbms-a-list-of-distributed-key-value-stores/ Applying experience from CPU design for distributed solution - http://blog.paralleluniverse.co/post/26909672264/on-distributed-memory Distributed systems for fun and profit - http://book.mixu.net/distsys/single-page.html Monitor and design - http://highscalability.com/blog/2015/8/31/building-globally-distributed-mission-critical-applications.html Uber case study - http://highscalability.com/blog/2015/9/14/how-uber-scales-their-real-time-market-platform.html Load balancer design - http://www.thegeekstuff.com/2016/01/load-balancer-intro/ Some issues of distributing logic to difference systems - http://blog.takipi.com/5-ways-to-not-f-up-your-microservices-in-production/ https://blog.acolyer.org/2019/03/08/a-generalised-solution-to-distributed-consensus/ Two Phase Commit - https://martinfowler.com/articles/patterns-of-distributed-systems/two-phase-commit.html