SlideShare a Scribd company logo
CLOUD
CONFERENCE
ITALIA
2019
SPONSOR
MICROSERVIZI: IDEE PER UN’ARCHITETTURA CON AL CENTRO
L’UTENTE
Federico Carrer
Matteo Varotto
WHO WE ARE?
Matteo Varotto
QA Architect
Quid Informatica
Federico Carrer
carrerfe@gmail.com
MatteoVarotto
matteo.varotto@gmail.com
Federico Carrer
Cloud Architect
Quid Informatica
GOOD OLD DAYS...
▪ Semplice da comprendere
▪ Semplice da implementare
▪ Semplice da testare
...QUALCHE ANNO DOPO...
OGGI
 Semplice da comprendere
 Semplice da implementare
 Semplice da testare
 Scalabilità limitata
 Difficile da evolvere
 Aggiornamenti rischiosi
FEATURE, FEATURE, FEATURE
QUAL È LA
RISPOSTA?
MICROSERVIZI
▪ Scomposizione in servizi autonomi e
indipendentemente:
▪ scalabili
▪ rilasciabili
▪ evolvibili
▪ testabili
▪ Team indipendenti che lavorano su
moduli indipendenti
▪ Problema scomposto in parti più
facilmente gestibili
▪ Scalabilità a livello di funzionalità
▪ Stack tecnologico selezionabile per
esigenze singolo componente
QUINDI TUTTO RISOLTO?
MONOLITH: ONLINE STORE
MICROSERVICES: ONLINE STORE
WITH GREAT POWER COMES GREAT RESPONSIBILITY
 Consistenza dei dati
 Partial Failure
 Distributed Transaction
WITH GREAT POWER COMES GREAT RESPONSIBILITY
 Consistenza dei dati
 Partial Failure
 Distributed Transaction
 Comunicazione asincrona
 Race conditions
WITH GREAT POWER COMES GREAT RESPONSIBILITY
 Consistenza dei dati
 Partial Failure
 Distributed Transaction
 Comunicazione asincrona
 Race conditions
 Performance
 Network latency
TORNIAMO DAL NOSTRO UTENTE
▪ 503 Service Unavailable
▪ Please wait
▪ Timeout
▪ Session expired
TORNIAMO DAL NOSTRO UTENTE
Cosa percepisce l'utente?
▪ Fragilità del sistema
▪ Lentezza
▪ Scarsa affidabilità
COSA POSSIAMO FARE?
▪ Limitare le conseguenze
▪ monitoraggio attivo
▪ interventi automatici (restarts, mail a backoffice, ecc.)
▪ circuit breaker
▪ bulkheading
COSA POSSIAMO FARE?
▪ Limitare le conseguenze
▪ monitoraggio attivo
▪ interventi automatici (restarts, mail a backoffice, ecc.)
▪ circuit breaker
▪ bulkheading
▪ Ridurre l'impatto su UX
▪ caching
▪ architettura ad eventi
▪ layer di resilienza
COSA POSSIAMO FARE?
▪ Limitare le conseguenze
▪ monitoraggio attivo
▪ interventi automatici (restarts, mail a backoffice, ecc.)
▪ circuit breaker
▪ bulkheading
▪ Ridurre l'impatto su UX
▪ caching
▪ architettura ad eventi
▪ layer di resilienza
▪ Intervenire sui processi
▪ CAP Theorem
COSA POSSIAMO FARE?
▪ Limitare le conseguenze
▪ monitoraggio attivo
▪ interventi automatici (restarts, mail a backoffice, ecc.)
▪ circuit breaker
▪ bulkheading
▪ Ridurre l'impatto su UX
▪ caching
▪ architettura ad eventi
▪ layer di resilienza
▪ Intervenire sui processi
▪ CAP Theorem
Design (for failure)
ESPERIENZA UTENTE E RESILIENZA
 All’utente interessa un “sistema che funziona”
 Disponibile
 ad esempio al 99,9%
 Affidabile
 capace di riprendersi dopo un’anomalia
 Resiliente
 capace di funzionare in modo accettabile anche in presenza di qualche malfunzionamento
 L’utente ci giudica anche in base a come risolviamo i problemi
 Service Recovery Paradox
ESPERIENZA UTENTE E RESILIENZA
Pattern di comunicazione REST ?
ESPERIENZA UTENTE E RESILIENZA
Pattern di comunicazione REST ?
ESPERIENZA UTENTE E RESILIENZA
Retry ?
ESPERIENZA UTENTE E RESILIENZA
Pattern di comunicazione Event-Driven
ESPERIENZA UTENTE E RESILIENZA
Pattern di comunicazione Event-Driven
ESPERIENZA UTENTE E RESILIENZA
Pattern di comunicazione Event-Driven
ESPERIENZA UTENTE E RESILIENZA
Pattern di comunicazione Event-Driven
ESPERIENZA UTENTE E RESILIENZA
Pattern di comunicazione Event-Driven
ESPERIENZA UTENTE E RESILIENZA
Pattern di comunicazione Event-Driven
CCI2019 - Microservizi: Idee per un'architettura con al centro l'utente
CCI2019 - Microservizi: Idee per un'architettura con al centro l'utente
MONITORAGGIO
MONITORAGGIO
MONITORAGGIO
MONITORAGGIO
TIMEOUT
CIRCUIT BREAKER
CCI2019 - Microservizi: Idee per un'architettura con al centro l'utente
CONSISTENZA
Sistemi monolitici
 ACID
 L’asse del tempo è una retta unica
Sistemi distribuiti
 Difficile garantire consistenza dei dati
 Ogni componente ha la sua visione del
tempo
THE GUARANTEE THAT ANY
TRANSACTIONS STARTED IN
THE FUTURE NECESSARILY SEE
THE EFFECTS OF OTHER
TRANSACTIONS COMMITTED
IN THE PAST
CONSISTENZA?
COORDINAMENTO - TWO PHASE COMMIT
COORDINAMENTO - TWO PHASE COMMIT
COORDINAMENTO - TWO PHASE COMMIT
COORDINAMENTO - TWO PHASE COMMIT
...QUINDI
PROBLEMA
RISOLTO?
2PC
 Scambio di molti messaggi
 Network latency
 Throughput limitato
 Coordinator rappresenta un Single point of failure
 Protocollo bloccante
 Se uno dei partecipanti fallisce abbiamo deadlock, non possiamo procedere con altre transazioni
COME POSSIAMO FARE?
Il mondo nel quale viviamo è inconsistente
COMPENSAZIONE
In genere nel mondo reale quando qualcosa non funziona:
 Ci riprovo
 Provo ad annullare gli effetti di quello che ho fatto
COMPENSAZIONE - SAGA
Consiste nel riscrivere la nostra transazione “lunga” come una sequenza di transazioni
In Saga o tutte le transazioni sono completate con successo oppure vengono eseguite le transazioni di
compensazione
SAGA
SAGA
SAGA
SAGA RINUNCIA A
ISOLAMENTO PER OTTENERE
UNA MIGLIORE AVAILABILITY
RINUNCIARE
ALL’ISOLAMENTO???? NON
SAREBBE MEGLIO AVERE UN
SISTEMA CHE GARANTISCA SIA
ISOLAMENTO CHE
CONSISTENZA?
COSA VUOLE IL NOSTRO UTENTE?
 un sistema perfettamente transazionale?
 che vengano garantite le regole di business dell’applicazione e le invarianti applicative?
CAP THEOREM
Un qualunque sistema distribuito può garantire
solo 2 su 3 tra
 Consistency
 Availability
 Partition Tolerance
CAP THEOREM – PARTIAL KNOWLEDGE
In questo momento abbiamo partitioning
 I messaggi di Catalog non vengono recapitati
Cosa possiamo fare?
 Consistency over Availability
 Availability over Consistency
CAP THEOREM – CONSISTENCY OVER AVAILABILITY
Potremmo decidere di progettare il sistema per
garantire la consistenza
In questo caso possiamo scusarci e chiedere
all’utente di riprovare più tardi
Abbiamo rinunciato alla AVAILABILITY
CAP THEOREM – AVAILABILITY OVER CONSISTENCY
Abbiamo rinunciato alla Consistency
In questo caso completo l’ordine anche se non
conosco le scorte di magazzino
Si tratta di gestire il rischio
CAP THEOREM – GESTIONE DEL RISCHIO
Blocco la possibilità di fare ordini
 Rischio di bloccare le vendite
Non blocco gli ordini
 Aspetto di ricevere nuove scorte del prodotto
prima di spedire
 Il prodotto è andato fuori commercio e non
riesco a reperirlo? Chiedo scusa
DESIGN FOR FAILURE
Partial knowledge spesso ci porta a dover fare
scelte basate su conoscenza locale
Un sistema distribuito spesso è portato a fare
congetture invece che prendere decisioni
…congetture che potrebbero essere corrette
come no
Quindi?
GRAZIE!

More Related Content

PPTX
Overview monitoraggio servizi erogati in rete tramite Nagios
Luca Lomi
 
PDF
Le 7 sfide da affrontare nella migrazione da monolite a miniservizi
Luca Acquaviva
 
PPTX
Uno scenario per il Cloud Computing - Edition 2014
Marco Parenzan
 
PDF
Favorire i feature teams con architetture microservices
Giulio Roggero
 
PPTX
Progetto Network CC
Giuseppe Coletti
 
PPTX
Progetto Network CC
Giuseppe Coletti
 
PDF
Introduzione Cloud Computing
steccami
 
PDF
Sharing economy e design dei servizi collaborativi
la Scuola di Bollenti Spiriti
 
Overview monitoraggio servizi erogati in rete tramite Nagios
Luca Lomi
 
Le 7 sfide da affrontare nella migrazione da monolite a miniservizi
Luca Acquaviva
 
Uno scenario per il Cloud Computing - Edition 2014
Marco Parenzan
 
Favorire i feature teams con architetture microservices
Giulio Roggero
 
Progetto Network CC
Giuseppe Coletti
 
Progetto Network CC
Giuseppe Coletti
 
Introduzione Cloud Computing
steccami
 
Sharing economy e design dei servizi collaborativi
la Scuola di Bollenti Spiriti
 

Similar to CCI2019 - Microservizi: Idee per un'architettura con al centro l'utente (20)

PDF
20060627 SOA @JavaConference2006 Milano-IT [ITA]
Francesco Cirillo
 
PDF
Distribuzione Upi Ed Architetture
bedosella
 
PDF
Cloud computing
Nelson Firmani
 
PPTX
Consolidare per il rilancio
Davide Bombarda
 
PPT
RETI DIGITALI E TECNOLOGIE ABILITANTI ret
matteoluigi
 
PPTX
Cyber Security in Multi Cloud Architecture - Luca Di Bari - Codemotion Rome 2017
Codemotion
 
PDF
Architetture a Microservizi (con Kubernetes)
Steve Maraspin
 
PPTX
01 azure well architected framework
Rauno De Pasquale
 
KEY
Blomming Lean Startup @ Better Software 2011
Nicola Junior Vitto
 
PDF
FE@R2B - Workshop Public eProcurement: nuovi scenari e sviluppi
EPOCA
 
PDF
workshop lab cross tec_r2b1
r2b2011
 
PPTX
Architetture.Distribuite
Giampiero Cerroni
 
PDF
Panduit a TBIZ2011
TechnologyBIZ
 
PDF
Incontro zerouno executive dinner
NetConsultingMilano
 
PDF
Market Oriented Clouds: the local perspective
TOP-IX Consortium
 
PDF
Cavallini Focus On Cloud Security
Matteo Cavallini
 
PDF
Sinibaldi soa-28.02.2008
sinibaldi
 
PDF
FE@OpenPA2011er
EPOCA
 
PDF
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Davide Ciambelli
 
PPTX
Predictive Maintenance per le aziende del nord-est con Azure e IoT
Marco Parenzan
 
20060627 SOA @JavaConference2006 Milano-IT [ITA]
Francesco Cirillo
 
Distribuzione Upi Ed Architetture
bedosella
 
Cloud computing
Nelson Firmani
 
Consolidare per il rilancio
Davide Bombarda
 
RETI DIGITALI E TECNOLOGIE ABILITANTI ret
matteoluigi
 
Cyber Security in Multi Cloud Architecture - Luca Di Bari - Codemotion Rome 2017
Codemotion
 
Architetture a Microservizi (con Kubernetes)
Steve Maraspin
 
01 azure well architected framework
Rauno De Pasquale
 
Blomming Lean Startup @ Better Software 2011
Nicola Junior Vitto
 
FE@R2B - Workshop Public eProcurement: nuovi scenari e sviluppi
EPOCA
 
workshop lab cross tec_r2b1
r2b2011
 
Architetture.Distribuite
Giampiero Cerroni
 
Panduit a TBIZ2011
TechnologyBIZ
 
Incontro zerouno executive dinner
NetConsultingMilano
 
Market Oriented Clouds: the local perspective
TOP-IX Consortium
 
Cavallini Focus On Cloud Security
Matteo Cavallini
 
Sinibaldi soa-28.02.2008
sinibaldi
 
FE@OpenPA2011er
EPOCA
 
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Davide Ciambelli
 
Predictive Maintenance per le aziende del nord-est con Azure e IoT
Marco Parenzan
 
Ad

More from walk2talk srl (20)

PPTX
CCI 2019 - SQL Injection - Black Hat Vs White Hat
walk2talk srl
 
PPTX
CCI 2019 - Exploiting Custom Vision SDK in Python to create an efficient imag...
walk2talk srl
 
PPTX
CCI 2019 - Come ottimizzare i propri workload su Azure
walk2talk srl
 
PPTX
CCI 2019 - Exchange 2019 da 0 ad HA in 1 ora
walk2talk srl
 
PPTX
CCI 2019 - PowerApps for Enterprise Developers
walk2talk srl
 
PPTX
CCI 2019 - Architettare componenti in SPFx, esperienze sul campo
walk2talk srl
 
PPTX
CCI 2019 - Step by step come attivare un servizio voce in MS Teams
walk2talk srl
 
PPTX
CCI 2019 - Strumenti Azure per l'Anomaly Detection in ambito Industria 4.0
walk2talk srl
 
PPTX
CCI2019 - I've got the Power! I've got the Shell!
walk2talk srl
 
PDF
CCI2019 - Sistema di controllo del traffico con architettura Big Data
walk2talk srl
 
PPTX
CCI2019 - Governance di una Conversational AI
walk2talk srl
 
PPTX
CCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
walk2talk srl
 
PPTX
CCI2019 - Reagire agli eventi generati dalla propria infrastruttura con Azure...
walk2talk srl
 
PPTX
CCI2019 - What's new in Remote Desktop Services on Windows Server 2019 and Azure
walk2talk srl
 
PPTX
CCI2019 - Teams Direct Routing e servizi fonia avanzati
walk2talk srl
 
PPTX
CCI2019i - Implementare Azure Multi-Factor Authentication Lettere dal Fronte
walk2talk srl
 
PPTX
CCI2019 - Monitorare SQL Server Senza Andare in Bancarotta
walk2talk srl
 
PPTX
CCI2019 - Architecting and Implementing Azure Networking
walk2talk srl
 
PPTX
CCI2019 - Teams e lo Shadow IT
walk2talk srl
 
PPTX
CCI2018 - La "moderna" Sicurezza informatica & Microsoft
walk2talk srl
 
CCI 2019 - SQL Injection - Black Hat Vs White Hat
walk2talk srl
 
CCI 2019 - Exploiting Custom Vision SDK in Python to create an efficient imag...
walk2talk srl
 
CCI 2019 - Come ottimizzare i propri workload su Azure
walk2talk srl
 
CCI 2019 - Exchange 2019 da 0 ad HA in 1 ora
walk2talk srl
 
CCI 2019 - PowerApps for Enterprise Developers
walk2talk srl
 
CCI 2019 - Architettare componenti in SPFx, esperienze sul campo
walk2talk srl
 
CCI 2019 - Step by step come attivare un servizio voce in MS Teams
walk2talk srl
 
CCI 2019 - Strumenti Azure per l'Anomaly Detection in ambito Industria 4.0
walk2talk srl
 
CCI2019 - I've got the Power! I've got the Shell!
walk2talk srl
 
CCI2019 - Sistema di controllo del traffico con architettura Big Data
walk2talk srl
 
CCI2019 - Governance di una Conversational AI
walk2talk srl
 
CCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
walk2talk srl
 
CCI2019 - Reagire agli eventi generati dalla propria infrastruttura con Azure...
walk2talk srl
 
CCI2019 - What's new in Remote Desktop Services on Windows Server 2019 and Azure
walk2talk srl
 
CCI2019 - Teams Direct Routing e servizi fonia avanzati
walk2talk srl
 
CCI2019i - Implementare Azure Multi-Factor Authentication Lettere dal Fronte
walk2talk srl
 
CCI2019 - Monitorare SQL Server Senza Andare in Bancarotta
walk2talk srl
 
CCI2019 - Architecting and Implementing Azure Networking
walk2talk srl
 
CCI2019 - Teams e lo Shadow IT
walk2talk srl
 
CCI2018 - La "moderna" Sicurezza informatica & Microsoft
walk2talk srl
 
Ad

CCI2019 - Microservizi: Idee per un'architettura con al centro l'utente

  • 3. MICROSERVIZI: IDEE PER UN’ARCHITETTURA CON AL CENTRO L’UTENTE Federico Carrer Matteo Varotto
  • 4. WHO WE ARE? Matteo Varotto QA Architect Quid Informatica Federico Carrer [email protected] MatteoVarotto [email protected] Federico Carrer Cloud Architect Quid Informatica
  • 5. GOOD OLD DAYS... ▪ Semplice da comprendere ▪ Semplice da implementare ▪ Semplice da testare
  • 7. OGGI  Semplice da comprendere  Semplice da implementare  Semplice da testare  Scalabilità limitata  Difficile da evolvere  Aggiornamenti rischiosi
  • 10. MICROSERVIZI ▪ Scomposizione in servizi autonomi e indipendentemente: ▪ scalabili ▪ rilasciabili ▪ evolvibili ▪ testabili ▪ Team indipendenti che lavorano su moduli indipendenti ▪ Problema scomposto in parti più facilmente gestibili ▪ Scalabilità a livello di funzionalità ▪ Stack tecnologico selezionabile per esigenze singolo componente
  • 14. WITH GREAT POWER COMES GREAT RESPONSIBILITY  Consistenza dei dati  Partial Failure  Distributed Transaction
  • 15. WITH GREAT POWER COMES GREAT RESPONSIBILITY  Consistenza dei dati  Partial Failure  Distributed Transaction  Comunicazione asincrona  Race conditions
  • 16. WITH GREAT POWER COMES GREAT RESPONSIBILITY  Consistenza dei dati  Partial Failure  Distributed Transaction  Comunicazione asincrona  Race conditions  Performance  Network latency
  • 17. TORNIAMO DAL NOSTRO UTENTE ▪ 503 Service Unavailable ▪ Please wait ▪ Timeout ▪ Session expired
  • 18. TORNIAMO DAL NOSTRO UTENTE Cosa percepisce l'utente? ▪ Fragilità del sistema ▪ Lentezza ▪ Scarsa affidabilità
  • 19. COSA POSSIAMO FARE? ▪ Limitare le conseguenze ▪ monitoraggio attivo ▪ interventi automatici (restarts, mail a backoffice, ecc.) ▪ circuit breaker ▪ bulkheading
  • 20. COSA POSSIAMO FARE? ▪ Limitare le conseguenze ▪ monitoraggio attivo ▪ interventi automatici (restarts, mail a backoffice, ecc.) ▪ circuit breaker ▪ bulkheading ▪ Ridurre l'impatto su UX ▪ caching ▪ architettura ad eventi ▪ layer di resilienza
  • 21. COSA POSSIAMO FARE? ▪ Limitare le conseguenze ▪ monitoraggio attivo ▪ interventi automatici (restarts, mail a backoffice, ecc.) ▪ circuit breaker ▪ bulkheading ▪ Ridurre l'impatto su UX ▪ caching ▪ architettura ad eventi ▪ layer di resilienza ▪ Intervenire sui processi ▪ CAP Theorem
  • 22. COSA POSSIAMO FARE? ▪ Limitare le conseguenze ▪ monitoraggio attivo ▪ interventi automatici (restarts, mail a backoffice, ecc.) ▪ circuit breaker ▪ bulkheading ▪ Ridurre l'impatto su UX ▪ caching ▪ architettura ad eventi ▪ layer di resilienza ▪ Intervenire sui processi ▪ CAP Theorem Design (for failure)
  • 23. ESPERIENZA UTENTE E RESILIENZA  All’utente interessa un “sistema che funziona”  Disponibile  ad esempio al 99,9%  Affidabile  capace di riprendersi dopo un’anomalia  Resiliente  capace di funzionare in modo accettabile anche in presenza di qualche malfunzionamento  L’utente ci giudica anche in base a come risolviamo i problemi  Service Recovery Paradox
  • 24. ESPERIENZA UTENTE E RESILIENZA Pattern di comunicazione REST ?
  • 25. ESPERIENZA UTENTE E RESILIENZA Pattern di comunicazione REST ?
  • 26. ESPERIENZA UTENTE E RESILIENZA Retry ?
  • 27. ESPERIENZA UTENTE E RESILIENZA Pattern di comunicazione Event-Driven
  • 28. ESPERIENZA UTENTE E RESILIENZA Pattern di comunicazione Event-Driven
  • 29. ESPERIENZA UTENTE E RESILIENZA Pattern di comunicazione Event-Driven
  • 30. ESPERIENZA UTENTE E RESILIENZA Pattern di comunicazione Event-Driven
  • 31. ESPERIENZA UTENTE E RESILIENZA Pattern di comunicazione Event-Driven
  • 32. ESPERIENZA UTENTE E RESILIENZA Pattern di comunicazione Event-Driven
  • 42. CONSISTENZA Sistemi monolitici  ACID  L’asse del tempo è una retta unica Sistemi distribuiti  Difficile garantire consistenza dei dati  Ogni componente ha la sua visione del tempo
  • 43. THE GUARANTEE THAT ANY TRANSACTIONS STARTED IN THE FUTURE NECESSARILY SEE THE EFFECTS OF OTHER TRANSACTIONS COMMITTED IN THE PAST CONSISTENZA?
  • 44. COORDINAMENTO - TWO PHASE COMMIT
  • 45. COORDINAMENTO - TWO PHASE COMMIT
  • 46. COORDINAMENTO - TWO PHASE COMMIT
  • 47. COORDINAMENTO - TWO PHASE COMMIT
  • 49. 2PC  Scambio di molti messaggi  Network latency  Throughput limitato  Coordinator rappresenta un Single point of failure  Protocollo bloccante  Se uno dei partecipanti fallisce abbiamo deadlock, non possiamo procedere con altre transazioni
  • 50. COME POSSIAMO FARE? Il mondo nel quale viviamo è inconsistente
  • 51. COMPENSAZIONE In genere nel mondo reale quando qualcosa non funziona:  Ci riprovo  Provo ad annullare gli effetti di quello che ho fatto
  • 52. COMPENSAZIONE - SAGA Consiste nel riscrivere la nostra transazione “lunga” come una sequenza di transazioni In Saga o tutte le transazioni sono completate con successo oppure vengono eseguite le transazioni di compensazione
  • 53. SAGA
  • 54. SAGA
  • 55. SAGA
  • 56. SAGA RINUNCIA A ISOLAMENTO PER OTTENERE UNA MIGLIORE AVAILABILITY
  • 57. RINUNCIARE ALL’ISOLAMENTO???? NON SAREBBE MEGLIO AVERE UN SISTEMA CHE GARANTISCA SIA ISOLAMENTO CHE CONSISTENZA?
  • 58. COSA VUOLE IL NOSTRO UTENTE?  un sistema perfettamente transazionale?  che vengano garantite le regole di business dell’applicazione e le invarianti applicative?
  • 59. CAP THEOREM Un qualunque sistema distribuito può garantire solo 2 su 3 tra  Consistency  Availability  Partition Tolerance
  • 60. CAP THEOREM – PARTIAL KNOWLEDGE In questo momento abbiamo partitioning  I messaggi di Catalog non vengono recapitati Cosa possiamo fare?  Consistency over Availability  Availability over Consistency
  • 61. CAP THEOREM – CONSISTENCY OVER AVAILABILITY Potremmo decidere di progettare il sistema per garantire la consistenza In questo caso possiamo scusarci e chiedere all’utente di riprovare più tardi Abbiamo rinunciato alla AVAILABILITY
  • 62. CAP THEOREM – AVAILABILITY OVER CONSISTENCY Abbiamo rinunciato alla Consistency In questo caso completo l’ordine anche se non conosco le scorte di magazzino Si tratta di gestire il rischio
  • 63. CAP THEOREM – GESTIONE DEL RISCHIO Blocco la possibilità di fare ordini  Rischio di bloccare le vendite Non blocco gli ordini  Aspetto di ricevere nuove scorte del prodotto prima di spedire  Il prodotto è andato fuori commercio e non riesco a reperirlo? Chiedo scusa
  • 64. DESIGN FOR FAILURE Partial knowledge spesso ci porta a dover fare scelte basate su conoscenza locale Un sistema distribuito spesso è portato a fare congetture invece che prendere decisioni …congetture che potrebbero essere corrette come no Quindi?