Una delle regole non scritte dei sistemi distribuiti, in stile Fight Club, è: non distribuire.
Ci devono essere validissimi motivi per scegliere di costruire un sistema distribuito. Come sappiamo, ma forse troppo facilmente dimentichiamo, la soluzione di tutti i mali non esiste. Un’architettura distribuita risolve un sacco di magagne ma inevitabilmente ne porta con se altre, diventa quindi importante valutare bene queste altre per essere sicuri che il gioco valga la candela.
L’altro ieri parlando di Enel scrivevo:
La cosa che più mi fa imbestialire è che un mondo complesso come quello di Enel è forse il mondo in cui sarebbe più semplice risolvere il problema di cui sopra.
In un sistema inevitabilmente complesso come quello di una grande realtà un’architettura distribuita è paradossalmente molto (più) facile da implementare. Il sistema è distribuito per natura dal giorno zero. La complessità è elevatissima. Tutte le magagne introdotte dal distribuire sono ampiamente annullate dai vantaggi.
Abbiamo sempre detto e accettato per buona la stessa cosa quando si parla di Domain Driven Design.
La cosa importante da comprendere, evidenziata molto bene da Weronika ad Amsterdam, è che la complessità esiste sempre. I business sono (quasi) sempre complessi, noi tecnici siamo stati educati con la forza a cercare di renderli semplici con la tecnologia.
Mai errore fu più nefasto. Fuggire la complessità può solo portare a spostare la stessa in un campo di battaglia più ostico: quello tecnologico.
Così per dire…La mail non è ancora arrivata.
--
With Ginger help.