Recent years have seen a surge in the number of tools available for building high-scale systems. In the areas of messaging, data grids, and databases, many products combine high availability and horizontal "scale-out" across multiple machines. Additionally, advanced architecture types such as Recovery-Oriented Computing go one step further in minimizing dependence on any of these products. The overlap between these approaches, and the number of possible combinations, raises these questions -- "How do I know which combination of technologies to use?" and "How do these technologies work together?"

This presentation compares and contrasts these options, identifying where each technology fits, doesn't fit, and even when to use a technology that's not the best fit. We will further explore how to integrate these components while understanding the tradeoffs between performance, scalability and reliability.