Qual è la differenza tra micro servizi e macro servizi (nello sviluppo del software)? Uno è meglio dell’altro?

Questa è una domanda interessante, ma cercherò di rispondere meglio che posso.

Quando penso ai microservizi, penso a un'API di servizio web autonoma, che esegue un piccolo sottoinsieme di compiti necessari per un'applicazione più grande. Per esempio, diciamo che avete bisogno di un qualche tipo di elaboratore di documenti che converta documenti di testo o word in un PDF. Ora questo ha bisogno di essere condiviso tra più applicazioni. Allora possiamo scrivere un microservizio per realizzare questo per un numero specifico di applicazioni che ne hanno bisogno. Notate che non ho detto enterprise wide, perché è qui che entrano in gioco i macro servizi.

Un macro servizio sarebbe anche un web service API autonomo, dove i bisogni sarebbero in tutta un'impresa. Questo sarebbe un servizio che comprenderà un'intera azienda, e anche servire i clienti per un particolare bisogno.

Per decidere quale sia meglio, dipende da quale sia il bisogno. Per costruire microservizi, si compartimenta la logica, che è vantaggiosa di per sé, se la si architetta correttamente. Un macro servizio potrebbe anche fare uso di micro servizi, chiamando molti micro servizi, in parte rendendo il macro servizio un punto centralizzato di tutti i micro servizi all'interno dell'impresa.