Ai fini dell'apprendimento, sto cercando di implementare un piccolo progetto usando i microservizi ( avviso buzzword! ). Ci sono molte risorse online che parlano del mondo dei microservizi "macro" - integrazione, orchestrazione, scoperta dei servizi, controllo della salute, topologia, ecc., Tuttavia ho scoperto che ci sono poche informazioni sulle implementazioni interne.
Il migliore che ho trovato finora è questo diagramma dal sito di Martin Fowler. Descrive una possibile configurazione interna utilizzando un modello di facciata con un servizio che incapsula un dominio e un repository.
Tuttavia, dopo aver avuto difficoltà a provare a implementare questi pattern da solo, e dopo aver esaminato varie altre opinioni , a quanto pare questi tipi di astrazioni non si adattano bene alla filosofia generale di Go di adottare l'approccio più diretto?
Il mio pensiero iniziale è che la maggior parte delle volte non c'è semplicemente bisogno di questo tipo di astrazione data la natura dei microservizi, assumendo che siano stati opportunamente partizionati in specifici contesti limitati e limitati; se un servizio è di poche centinaia di punti, allora è meglio riscrivere una palla di fango strettamente accoppiata, quindi progettare le astrazioni perfette solo per motivi di test / riusabilità.
In generale, è questo il caso? Ci sono altri schemi che potrebbero meglio adattarsi al paradigma Go per progettare gli interni di un microservizio? Non sono necessariamente "indottrinato" in alcun dogma particolare, ma sono interessato a leggere i vari punti di vista.