이러한 이유로 업계에서는 수평 확장을 주로 택하고 있다. 이러한 경향은 실시간 시스템의 필요성, 대규모 데이터, 이중화를 통한 신뢰성 확보, 자원 효율성 제고를 위한 클라우드 혹은 SaaS 환경으로의 마이그레이션이 진행되면서 나타났다.
수평 확장을 구현하려면 시스템에 동시성이 도입돼야 한다. 그것도 컴퓨터 여러 대에 걸친 동시성이 적용된 컴퓨팅 클러스터(실용적인 시간 내에 완료할 수 있는 데이터 처리를 목적으로 만들어진 서로 연결된 여러 대의 컴퓨터)가 필요하다.
느슨한 결합
문제의 크기를 결정하는 또 다른 요소는 문제의 복잡성이다. 안타깝게도 엔지니어의 일정한 노력 없이는 시스템의 복잡도를 감소시킬 수 없다. 사업적 관점에서는 제품에 성능과 기능을 끊임없이 추가하려고 하기 때문에 제품의 코드 베이스 복잡도나 인프라, 유지보수 수요는 필연적으로 증가하게 되어 있다. 엔지니어는 이에 대응해 시스템을 좀 더 단순한 구성 요소로 분할하고, 이들이 서로 통신하게끔 설계를 바꾸어야 한다.