Jim Collins and Jerry Porras first coined this phrase in Built to Last. In their book, they describe how choosing between seemingly contradictory concepts—focusing on this or that—leads to missed opportunities. Is the product low cost or high quality? Do I focus on short-term opportunities or long-term strategy? Should the company be bold or conservative? Built to Last is focused on business and what makes great companies continue to succeed year after year. Collins and Porras discovered that the best companies find a way to embrace the positive aspects of both sides of a dichotomy, and instead of choosing, they find a way to have both.
These same dichotomies exist in technology. Some common dichotomies include: low power vs. high performance, high stability vs. new features, and ease of use vs. flexibility. These are false choices. You can have high performance and low power—just look at the huge gains made through die shrinks. You can have new features without sacrificing stability with the right development process and proper QA. You can have an easy to use product that also enables maximum flexibility. All it takes is thoughtful design. We can embrace “the genius of the AND” here, too.
The tyranny of the OR still is strong in the database world. Do you want relational and ACID capabilities or do you want to be able to scale? An entire movement has been formed to answer this exact either-or question: the NoSQL movement. Digg has blogged about it (http://about.digg.com/blog/looking-future-cassandra and http://about.digg.com/blog/saying-yes-nosql-going-steady-cassandra) talking about how they did a large rewrite of their code to move to Cassandra, working around limitations in the process. If you look at the Digg blogs, they really did have a point. Once you scale beyond what a single box can do, you had two options: partition the database or move away from traditional relational databases. In both cases, you lose relational capabilities. You can either have scale or you can have the functionality you need.
They did have a point. Clustrix now offers a third option. The Clustrix database offers full relational and transactional capabilities and it can scale. The Clustrix product speaks the MySQL protocol on the wire (but uses no MySQL code) and allows seamless online scaling. It supports arbitrary relational calculus at any scale. It supports full ACID semantics—not eventual consistency—yet writes continue to scale. Clustrix has learned to embrace the genius of the AND.