This section is devoted to techniques that allow software systems to scale. Scaling can be achieved in different ways, but it usually relates to more traffic, more requests, more users. There are various kinds of components that will be part of your system designs and they all have their ways to accommodate increasing demands. Usually, this involves making various trade-offs. In the first lesson of this section we will start with useful learning materials, then we will give some real-life examples and will finish with a quick summary and final advice about how to apply all that at your interviews.