Whether to concentrate or to divide your troops must be decided by circumstances.
The previous chapter introduced the model by which we describe splits to allow for nearly infinite scale. Now we’ll apply those concepts to our real-world product needs. To do this, we’ll separate the product into pieces that address our application and service offerings (covered in this chapter) and the splits necessary to allow our storage and databases to scale (covered in the next chapter). The same model and set of principles hold true for both approaches, but the implementation varies enough that it makes sense for us to address them in two separate chapters.