Un'architettura dovrebbe presentare la tecnologia utilizzata, ma solo per API pubblica e qualsiasi risorsa condivisa .
Se sto cercando di capire come il sistema di inventario parlerà con il sistema degli ordini di lavoro, allora ho bisogno di sapere quali sono le mie opzioni.
Non mi interessa davvero se il sistema è sviluppato con C # o Java, a meno che non influenzi la licenza o l'assunzione; Mi interessa se sta usando SOAP, REST o qualche tipo di EDI. Mi interessa anche quale versione e quali protocolli sono in uso. Questi devono essere inseriti in un documento di architettura, altrimenti non mi dice nulla sull'architettura attuale.
Mi interessa anche del database - questa è una risorsa condivisa. Se mi sto appoggiando verso ETL come soluzione, allora fa una grande differenza se l'origine è Oracle o SQL Server.
Oh, e ho bisogno di sapere delle dipendenze. Ad esempio, se hai deciso di utilizzare NServiceBus per il tuo ESB, ho bisogno di saperlo perché richiede una diffusione diffusa di MSMQ e, in quanto architetto, dovrei essere in grado di dire qualcosa su quanto affidabile e / o scalabile sia è. Allo stesso modo, se hai deciso di utilizzare WCF con l'autenticazione del certificato reciproco, faremmo meglio a prepararci a implementare una PKI.
D'altra parte, non mi importa se hai scelto Spring o Castle per l'iniezione della tua dipendenza, o se stai usando Linq su SQL o Entity Framework nella tua app .NET. Per favore non annoiare i tuoi lettori con un account insopportabile dei meriti di log4net rispetto a NLog.
Non c'è una semplice risposta "sì" o "no": equivale a chiedere quanti dettagli tecnici dovresti entrare durante un incontro con i tuoi clienti. La risposta è "solo quanto necessario". Sei l'architetto; dovresti capire abbastanza dell'architettura per essere in grado di determinare se alcuni dettagli di implementazione hanno un impatto più ampio sull'intero sistema o azienda.