I think there is another issue for large-scale globally distributed web application or data stores are the trade-off between consistency and availability. According to the CAP theorem. They cannot be both realized in a partition-tolerate system.
...a coarse grain computation has a large time and/or memory footprint. Conversely, a fine grain
computation has only few values processed locally and contributes mainly by being used
in large quantity. Consistent with earlier points, threads often support fine grain
parallelism and processes support course grained parallelism. Other semantic nuances
include the sense that fine grain computations are more flexible, being available for
smaller opportunities for parallelism. By contrast, coarse grain computations can provide
better opportunities for amortizing overhead and hiding latency...
I think there is another issue for large-scale globally distributed web application or data stores are the trade-off between consistency and availability. According to the CAP theorem. They cannot be both realized in a partition-tolerate system.
Some explanation for parallelism vs. footprint trade-off. From https://courses.cs.washington.edu/courses/cse590o/06au/LNLCh-3-4.pdf
...a coarse grain computation has a large time and/or memory footprint. Conversely, a fine grain computation has only few values processed locally and contributes mainly by being used in large quantity. Consistent with earlier points, threads often support fine grain parallelism and processes support course grained parallelism. Other semantic nuances include the sense that fine grain computations are more flexible, being available for smaller opportunities for parallelism. By contrast, coarse grain computations can provide better opportunities for amortizing overhead and hiding latency...