Com o desenvolvimento de muitos sistemas para uma enorme gama de domínios de aplicação, o que se tem observado é que, sob determinadas circunstâncias, certas escolhas de design regularmente resultam em soluções de sucesso. Em comparação a alternativas possíveis, essa solução é mais elegante, eficaz, eficiente, confiável e escalável.
Esta lista de decisões de arquitetura de design, portanto, não é específica para um determinado sistema (ou classe de sistemas). Ao contrário, estas decisões de arquitetura são aplicáveis a qualquer sistema que compartilha o contexto de prestação de serviços distribuídos.
Estilos arquitetônicos fornecem decisões gerais de design que podem restringir ou podem necessitar de refinamentos para que possam ser aplicados a um sistema.
Já um padrão de arquitetura fornece um conjunto de decisões de design específico que foram identificadas como eficazes para a organização de certas classes de sistemas de software.