Quando progettiamo l'intero sistema, abbiamo pochi schemi di architettura tra cui scegliere. Uno di questi è il modello dell'architettura a strati, Questo modello sembra abbastanza generico da adattarsi a tutti gli altri modelli di architettura, ma con scala diversa.
Ad esempio, se scegliamo l'architettura Microservice, ogni servizio ne ha ancora bisogno è un proprio livello. Il servizio in SOA o Microservice richiede un livello di persistenza, servizio e applicazione.
A volte il servizio è troppo piccolo come createThumpImageService, che prenderà solo l'immagine e ne creerà il thump, quindi memorizzerà il nuovo thump nell'archivio blob. Se tale servizio con 10 righe di codice stratificato, penso che sarà sovradimensionato.
La mia domanda è quando l'architettura a strati si adatta (componente, sottosistema, servizio, microservizio) e quando no?
Se ci sono casi in cui l'architettura a più livelli non è la scelta migliore, quali soluzioni alternative ci forniscono il disaccoppiamento e l'astrazione dell'architettura a strati?