Aqui está um cheiro concreto de arquitetura / design que encontro o tempo todo: análise e geração de relatórios diretamente de um banco de dados transacional.
Certamente isso é bom em algumas situações (ou seja, relatórios leves), mas em muitos casos os requisitos de processamento de transações e relatórios estão em conflito. No entanto, como é simples / barato, os relatórios são executados diretamente do banco de dados transacional. Isso causa todos os tipos de dores de cabeça nos dois lados da equação.
Isso geralmente é visto nos aplicativos Enterprise LOB, btw. Entendo que muitas pequenas e médias empresas simplesmente não têm os recursos ou o know-how para criar armazéns e datamarts (esqueça os cubos ou configurações de redução de mapa), mas muitas organizações maiores com as quais trabalhei têm os mesmos problemas.
Ao projetar um sistema, o arquiteto realmente deve estar ciente de que os relatórios - especialmente os relatórios de análise - e os requisitos transacionais são melhor tratados como problemas separados e não apenas agrupados no nível do banco de dados.