N-Tier non è necessariamente su reti diverse. Ogni livello è in un processo separato, potrebbe essere tutto su una sola macchina.
Il livello 3 è un po 'fuori moda a causa del marshalling fuori processo che richiede.
Qualsiasi livello aggiuntivo, leggi: limite del processo o peggiore comunicazione attraverso un trasporto di rete, è costoso.
In un sistema a 3 livelli il secondo livello è solitamente la logica aziendale. Un sistema a due livelli è più popolare in questi giorni, dal momento che la logica aziendale è davvero difficile da separare dai dati degli utenti.
Una tipica applicazione Web è a due livelli; i dati utente e la logica aziendale sono di un livello e un DBMS è l'altro livello.
Il più grande svantaggio consiste nel dover eseguire il marshalling / serializzazione di tutto più volte mentre si rimbalza tra i livelli. Meno livelli hai, meno rimbalzi devi fare. Tutto il lavoro che puoi fare direttamente senza saltare attraverso i cerchi è enormemente più efficiente. La differenza tra il passaggio dei dati per riferimento (in-process memory) o tramite un trasporto è enorme.
Il codice API o una logica aziendale sotto forma di codice dell'applicazione è facilmente replicabile e quindi efficiente da eseguire in-process. Un livello di logica aziendale offre poche opportunità di ridimensionamento poiché dipende dalle transazioni con il livello dati. Non hai bisogno di livelli per il riutilizzo, puoi riutilizzare i livelli semplicemente.
Continuerò a stratificare il più a lungo possibile. Per ciò che chiami 'API' nel tuo 'flusso': guarda in un modello di livello servizio dell'applicazione (che è un livello, non un livello) come alternativa.