ottobre 2016 Blog Posts

4+1 architectural view model

Tempo fa ho scritto un post che titolava “Architettura: una ed una sola…?!?!” in cui, stringendo stringendo, dicevo che se abbiamo un’architettura a servizi abbiamo il vantaggio che ogni servizio può fare le sue scelte architetturali e/o tecnologiche. Espandiamo per un momento il concetto e chiediamoci se guardando uno solo di questi servizi vediamo una ed una sola architettura. O ancora se guardando uno solo di questi servizi l’ architettura è la risultanza di diversi approcci architetturali che sinergicamente hanno prodotto quello che stiamo osservando. Probabilmente ci rendiamo conto che il risultato è determinato dall’interazione di quattro “punti...

posted @ lunedì 31 ottobre 2016 09:15 | Feedback (0)

“Non smettere mai di lamentarti”

In azienda abbiamo una regola non scritta che recita più o meno: Lamentati, ma ogni volta che ti lamenti proponi almeno 3 possibili soluzioni. Quello che sottintende è che gli stimoli sono vitali per evolvere, e ovviamente gli stimoli non devono essere fini a se stessi ma devono essere propositivi e quindi arrivare accompagnati da possibili strade per migliorare. Accompagnato a questo facciamo di tutto anche per stimolare il cosiddetto “avvocato del diavolo”, ci impegniamo molto per mettere in discussione proposte e processi. Se notate non ho detto decisioni, ma solo proposte e...

posted @ venerdì 28 ottobre 2016 10:39 | Feedback (1)

Serverless

In tutta sincerità non comprendo tutto questa eccitazione per “serverless”, dove sta la novità o la cosa per cui è necessario eccitarsi? Dal mio punto di vista il metallo è un mero problema di deploy, e come tale ci penso quando penso al deploy. Che ci sia qualcuno che mi offre IAAS, PAAS, o FAAS (Function as a Service, me lo sono inventato adesso) non ha un gran impatto sull’architettura.O dipende da che punto di vista guardiamo l’architettura? :-)

posted @ giovedì 27 ottobre 2016 17:26 | Feedback (0)

CQRS: “N” come “notifiche”

Questo me l’ero perso per strada tempo fa. Ne è passata di acqua sotto i ponti da quella serie su CQRS: “C” come CQRS: una possibile implementazione dei comandi CQRS: eventualmente consistente “QRS” come CQRS CQRS: “A” come de-normalizzazione asincrona CQRS: “C” come “Conversation Id” Siccome il tema mi sembra ancora attuale ha comunque senso darvi un paio di risorse per approfondire: Powering front end apps with NServiceBus Connect frontend to backend using SignalR and...

posted @ mercoledì 26 ottobre 2016 12:56 | Feedback (0)

Comandi, Messaggi ed Eventi, ovvero: perché le parole sono importanti

L’ho già detto quando ho parlato della distinzione tra Evento ed Evento di Dominio (qui e qui) e quando abbiamo approfondito i “fat event” (qui e qui). Quando approcciamo SOA e decliniamo l’architettura usandone una basati su messaggi ci troviamo di fronte a tre tipologie di messaggi: Comandi I comandi sono diretti ad un destinatario, uno solo (ripetete con me: uno solo), e portano con se tutte le informazioni che permettono al destinatario di portare il sistema in un nuovo stato consistente. I comandi tipicamente sono “fat command” e siccome per loro natura creano forte accoppiamento i...

posted @ martedì 25 ottobre 2016 08:10 | Feedback (0)

In uno scenario CQRS…

Parto da questo commento di Fabio, perché merita un post a se. Alcune considerazioni: CQRS non implica Event Sourcing e non implica eventi per sincronizzare gli aggregati con i modelli in lettura, è una possibile strada (irta e con tante piccole insidie) ma non è obbligatorio, e il piccolo esperimento che è Radical.CQRS lo dimostra. Se anche decidessimo di percorrere la strada CQRS + Event Sourcing e quindi abbiamo bisogno di produrre le projection, dato che queste ultime vivono nello stesso bounded context dell’aggregato il problema “fat event” non si...

posted @ venerdì 21 ottobre 2016 09:55 | Feedback (3)

“fat event”: cosa sono e perché crediamo ci servano

Abbiamo toccato per la prima volta il problema quando abbiamo parlato della differenza tra eventi ed eventi di dominio per tornarci, grazie a Roberto, con un approfondimento e infine per lanciare la stoccata finale: I fat event non esistono. Non abbiamo però mai detto che cosa sia un fat event. Cosa sono Un esempio vale mille parole, nel mondo Pub/Sub delineato da SOA un evento è (in pseudo codice json) una cosa del tipo: {    Id: ‘invoicePaidEvent/some-weird-unique-id’,    InvoiceId: ‘the paid...

posted @ mercoledì 19 ottobre 2016 11:17 | Feedback (6)

Services UI Composition: GraphQL

Quando abbiamo parlato di tecniche di recupero delle informazioni abbiamo introdotto il concetto di proxy. GraphQL sembra essere la soluzione di tutti i mali :-) permettendovi di fare due cose, che voglio approfondire: Implementare il concetto di “proxy” come lo abbiamo descritto liberarvi del male assoluto che rappresentato dal versioning delle API REST pubbliche Mentre il primo punto continua a farmi storce il naso, il secondo è in linea con la mia convinzione che i fat events non esistono. Appena iniziamo a parlare di scritture in un modello distribuitoci ritorneremo....

posted @ lunedì 17 ottobre 2016 09:00 | Feedback (7)

Il self-management non funziona, lunga vita al self-management

Ne ho parlato ai Community Days e ad un certo punto ho usato questa slide: Il messaggio che volevo far passare, e di cui ho parlato è che Self-Managment non significa anarchia, ma se preso alla lettera porta all’anarchia. Il che potete bene immagine che non è un bene. Ci sono due ordini di problemi Self-Management è il peggior termine che si potesse usare, perché implica autogestione, quindi tutti-tutto. E questo è il primo problema. Il secondo è che l’autogestione, funziona, ma non scala. Ci abbiamo provato e abbiamo fallito, finché il numero di attori...

posted @ venerdì 14 ottobre 2016 12:09 | Feedback (0)

Squad, Guild e TaskForce

Dunque, argomento tosto che non so se riesco (e voglio) esaurire in un singolo post. In Particular la struttura è fluida, molto fluida, con tutte le conseguenze del caso. Ho già introdotto il concetto di Maintainer Group ma ovviamente è una delle tante strutture/processi che in un modello molto fluido sono necessarie, perché l’anarchia non funziona. Le strutture principali che abbiamo sono in questo momento 4: Squad Task force Guild Maintainer Group Lasciamo da parte per un secondo i Maintainer, di cui ho già...

posted @ mercoledì 12 ottobre 2016 13:04 | Feedback (2)

Future Decoded, aka Communcity Days, il giorno dopo.

Per la prima volta ieri ho mancato un post, dato l’impegno preso con me stesso circa 4 mesi fa. Ieri giornata un filino convoluta, se così si può dire. Poco male, recuperiamo. In realtà dal punto di vista della data ci siamo, lo sto scrivendo sempre di lunedì, ma sono senza connettività e quindi sarà online martedì, 11 ottobre. Giovedì, e purtroppo non venerdì per piacevoli impegni personali con la moglie, ho avuto il l’onore, e il piacere, di tenere una sessione a Future Decoded (aka Community Days). Sono ampiamente soddisfatto del risultato, soprattutto se penso che l’argomento non...

posted @ martedì 11 ottobre 2016 08:02 | Feedback (0)

Join the Expert - Web Day

L’autunno si sta arricchendo di eventi alla grande :-) e cosa ancora più bella UGI sta tornando! L’agenda è ancora in divenire, ma la location e l’atmosfera sono già ben definite: Join the Expert - Web Day. La tematica principale sarà il mondo web in tante sfaccettature diverse. Io nel mio piccolo vi racconterò di Single Sign On con IdentityServer. Ci si vede il 18 Novembre a Milano! .m

posted @ venerdì 7 ottobre 2016 11:48 | Feedback (0)

La tecnologia mi annoia a morte.

Ormai è un dato di fatto, ho un quasi totale disinteresse per la tecnologia in quanto tale. Non sono mai stato quello che in generale viene definito un geek, ma negli ultimi anni ho perso anche quel poco interesse che avevo per gli aspetti prettamente tecnologici. Credo che il bandolo della matassa sia semplicemente riconducibile al “dettaglio” che, dal mio punto di vista, la tecnologia è semplicemente l’ultimo passo del processo di soluzione del problema, e spesso non è il più importante. Mettiamoci poi che la tecnologia evolve con una rapidità notevole e il disinteresse è servito. ...

posted @ mercoledì 5 ottobre 2016 09:31 | Feedback (4)

"Microservices development deep dive" @CodemotionIT in Milan: IT/Ops

Volete capire come gestire il processo di integrazione con sistemi legacy o di terze parti in un mondo basato su Microservices in maniera affidabile ed efficace? Workshop: Microservices development deep dive. Il programma, parte 3: IT/Ops Il workshop è diviso in 4 macro-blocchi, ogni blocco corredato da esempi ed esercizi. La quarta, ed ultima, parte evolve dalla sessione precedente analizzando le problematiche legate all’integrazione tra sistemi diversi; affronteremo quindi, dal punto di vista architetturale prima e tecnologico poi, concetti come Command e IT/Ops al fine di comprendere a fondo come far comunicare sistemi diversi in...

posted @ martedì 4 ottobre 2016 17:13 | Feedback (0)

“How to build a business that lasts 100 years”

Notevole: Martin Reeves: How to build a business that lasts 100 years La domanda del secolo al minuto 11 e qualche cosa, adoro :-)

posted @ lunedì 3 ottobre 2016 14:26 | Feedback (0)

Croce e delizia del lavoro remoto - Community Days 2016

Come ho già avuto modo di anticipare questa settimana avrò l’onore, per la decima volta, di presentare una sessione ai Community Days. Se siete curiosi di scoprire, e perché no approfondire, il lungo, tortuoso e affascinante percorso che stiamo facendo in Particular nella migrazione da una struttura organizzativa tradizionale a quella che (erroneamente) potremmo definire self-management segnatevi sul calendario: Croce e Delizia: Storia di un lavoratore remoto Giovedì 6 ottobre, ore 15.15 – Sala 2 (Teatro 4) Maggiori informazioni: http://milestone.topics.it/events/cdays-2016-milano.html Un problema! Ho un’interessante conflitto personale in corso,...

posted @ lunedì 3 ottobre 2016 08:52 | Feedback (7)