L'importanza dei contesti

Sollecitato dai commenti di Davide e Francesco, riprendiamo il discorso del post precedente e cerchiamo di analizzare e sviscerare un po’ di più le situazioni che sempre più spesso mi capita di vedere.

Quello che Davide e Francesco “contestano” della visione descritta nel post precedente credo sia dettata da una loro visione data-centrica: il dato prima di tutto…e detta così potrebbe sembrare ovvia :-) Ma non è così semplice: il dato cambia, non solo nella sostanza, ma anche e soprattutto nella forma e ciò che ne delinea i contorni sono i processi di business che le nostre applicazioni modellano. Guardare il dato in un particolare istante significa fare uno snapshot dello stato di un processo…ma mentre lo stiamo guardando e analizzando quel dato potrebbe già essere vecchio, ma non solo…potrebbe anche avere una “forma” talmente vecchia da non essere più utile.

La mia idea non è quella di creare dei gateway verso i dati, ma delineare in modo marcato i confini dei processi in cui ogni dato acquisisce un particolare significato. E’ solo attraverso il processo che si può capire il valore di un dato. Chiunque debba interagire con i dati in lettura lo può fare attraverso le API che i processi metteranno a disposizione, ma soprattutto quando si deve interagire in scrittura l’unico modo per non correre il rischio di portare il sistema in uno stato inconsistente è quello di delegare le nostre richieste a chi le sa gestire. Questo attore non può essere il database, che ha (e deve avere) altri compiti.

In un ambiente distribuito questa “compartimentazione” è manna dal cielo: come afferma il CAP theorem, non è possibile garantire contemporaneamente consistenza, “disponibilità” e tolleranza al partizionamento di rete (non so se si traduce così :-) )per un sistema distribuito. Garantire due di questi aspetti, in base alle esigenze, suddividendo l’intero sistema in contesti è la soluzione per semplificare il problema…ma di questo ne parliamo la prossima volta.

illustrazione di una piccola busta stilizzata

Scrivere software negli anni Venti

Sei email all'anno, cariche di link interessanti, tra codice, design, tecnologia, musica e l'immancabile angolo water cooler.

Iscrivimi
illustrazione logo newsletter do you speak it

Do You Speak IT?

Mini corso in 10 email, dedicato agli imprenditori e ai curiosi, per imparare la lingua della tecnologia.

Iscrivimi