Lo storico che non mente
Eventi interni, versioni immutabili e durate: una settimana per conservare il contesto dei flussi e rendere meno ambiguo ciò che viene registrato.

La parola «inviato» mi sembrava abbastanza chiara. Questa settimana ho dovuto guardarla meglio.
Alcuni eventi interni tra flussi non completavano il percorso previsto. Il sistema aveva registrato un passaggio, ma quel passaggio non mi permetteva di sapere se il lavoro successivo fosse davvero partito.
Quando costruisci un motore di processi, è una distinzione che non puoi lasciare implicita. Mi sono rimesso a controllare sia gli eventi sia il modo in cui conserviamo il contesto.
Non cambiare il passato mentre aggiorno un flusso
Con la v0.79.8 la pubblicazione del flusso è diventata immutabile.
Se modifico il progetto, deve nascere una nuova versione. Ho bisogno di poter ricostruire una pratica usando le regole che esistevano quando è stata lavorata, senza leggerla attraverso quelle cambiate dopo.
Ho consolidato anche i percorsi di scrittura. Far passare gli aggiornamenti dallo stesso punto riduce la possibilità che una strada rispetti i controlli e un’altra li aggiri.
Mi interessa che lo storico rimanga una memoria del lavoro, non che assomigli al disegno più recente.
Le ambiguità piccole diventano problemi concreti
Ho lavorato sulla grammatica delle durate: un tempo deve essere espresso e interpretato nello stesso modo, senza convenzioni diverse sparse per l’interfaccia e il motore.
Una ricognizione ha trovato ottantotto flussi su quattrocentoventiquattro con scadenze prive di una destinazione. Sono numeri del controllo sul materiale del progetto, non aziende o clienti. Mi hanno aiutato a individuare configurazioni che lasciavano una domanda aperta: scade il tempo, e poi?
Sono avanzate anche la portabilità dei flussi e le protezioni per i passaggi interrotti da un arresto del motore.
Che cosa voglio leggere tra un mese
Quattordici rilasci e duecentonovantatré commit.
Vorrei poter tornare su una pratica tra un mese e capire che cosa è successo senza dover ricordare la versione di ogni funzione a memoria. Chi l’ha lavorata, con quali regole, quale evento ha provocato il passaggio.
Questa settimana mi ha ricordato quanto sia facile registrare molte informazioni e lasciare comunque irrisolta la domanda più importante. Sto cercando di fare in modo che il registro serva a rispondere, non soltanto a dimostrare che qualcosa è stato scritto.