Designing for large-scale adoption
So far, in this chapter, we have discussed some widespread patterns and architectural styles that are well used in the world of enterprise Java applications.
One common idea around the techniques that we have discussed is to organize the code and the software components not only for better readability, but also for performance and scalability.
As you can see (and will continue to see) in this book, in current web-scale applications, it is crucial to think ahead in terms of planning to absorb traffic spikes, minimize resource usage, and ultimately have good performance. Let's have a quick look at what this all means in our context.
Defining performance goals
Performance is a very broad term. It can mean many different things, and often you will want to achieve all performance goals at once, which is of course not realistic.
In my personal experience, there are some main performance indicators to look after, as they usually have...