시스템 아키텍처는 일련의 소프트웨어 컴포넌트와 그 컴포넌트들을 분리하는 경계에 의해 정의된다.
경계 횡단하기
'런타임에 경계를 횡단한다' 는 뜻은 경계 한쪽에 있는 기능이 반대편의 기능을 호출하는 것이다. 적절하게 경계를 횡단하는 방법은 소스코드 의존성 관리이다.
두꺼운 단일체
모놀리틱 구조에서는 대부분 다형성에 의존해 내부 의존성을 관리한다. 따라서 특히 객체 지향 패러다임이 중요해진다. 가장 단순한 형태의 경계 횡단은 저수준 클라이언트에서 고수준 서비스로 향하는 함수 호출이다. 이 경우 런타임 의존성과 컴파일 의존성 모두 저수준 컴포넌트에서 고수준 컴포넌트로 향한다.
배포형 컴포넌트
아키텍처의 경계가 물리적으로 드러나는 경우 배포형 컴포넌트다. 배포형 컴포넌트는 별도의 실행 파일이 존재해 배포 과정에서 차이가 있을 뿐 두꺼운 단일체(모놀리틱 구조)와 동일하게 함수 호출을 통해 경계를 횡단한다.
서비스
물리적인 형태를 띠는 가장 강력한 경계가 서비스다. 서비스는 모든 통신이 네트워크를 통해 이루어진다는 전제 위에서 개발된다. 따라서 함수 호출보다 경계를 횡단하는 비용이 비싸다. 그리고 이로 인한 지연 문제를 고수준에서 처리할 수 있어야 한다.