SlideShare a Scribd company logo
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
Eventual Consistency without Consensus with
CRDTs
Sam BESSALAH - @samklr
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
“ This talk is filled with words and terms, that might
make you sound too nerdy or pedantic at dinners
with non developers friends. ”
Use with caution.
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
“ Distributed Programming, generally a bad idea,
best avoided. ”
-Peter Bourgon
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
- Availability
- Fault tolerance
- Throughtput
- Architecture
- Economics
Why we use distributed systems?
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
CAP Theorem
S. Gilbert and N. A. Lynch. Brewer’s conjecture and the feasibility of consistent, available, partition-tolerant web services.
SIGACT News, 33(2):51–59, 2002.
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
http://bravenewgeek.com/from-mainframe-to-microservice-an-introduction-to-distributed-systems/
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
Data Consistency?
Consensus Systems ,
Locking Services and
“barbaric“ algorithms
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
Data Consistency?
- Distributed Consensus : Costly and nearly impossible.
Multi Phase Commit, Stae Replication
- Two Phase Commit : Blocking, dependent on coordinator,
deadlocks inducing
- Three Phase commit : abort on timeouts, non blocking but easily
fails on network partitions
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
Data Consistency?
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
Data Consistency?
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
Data Consistency?
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
Data Consistency?
RAFT
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
Data Consistency?
Locking Services
Chubby (Google)
Zab (Yahoo)
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
http://bravenewgeek.com/from-mainframe-to-microservice-an-introduction-to-distributed-systems/
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
@aphyr
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
“ Consistency is a property of your data,
not of your nodes”
@aphyr
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
AP Systems
Eventual Consistency
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
AP Systems
Eventual Consistency
- High Availability
- Low Latency
- Fault tolerant
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
AP Systems
Eventual Consistency
- High Availability
- Low Latency
- Fault tolerant
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
Dynamo Systems
Riak
Voldemort
Cassandra
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
Conflicts resolution
- Semantic Resolution
- Vector Clocks
- Last write wins (LWW)
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
Vector ClocksLWW
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
Convergent Replicated
Data Types
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
CRDTs
- Take the consistency problem to the level of
Data Structures
- Their state resolves automatically (eventually) to
a single coherent value
- Maintain multiple copies of your data
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
CRDTs : Monotonicity
- Every new operation adds information
- Data is never immediately destroyed
- Most things are trasparent to the application
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
CRDTs : 2 types
- State based or convergent ( CvRDTs)
- Commutative or Operations based (CmRDTs)
*
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
CvRDTs
- All replicas connected
- At least once semantics usually
- State Changes advance upwards according to partial
order
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
CmRDTs
- All replicas connected
- Need Reliable broadcast with ordering guarantees
- Best suitable for commutative updates
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
CRDTs : Fancy words
CRDTs are idempotent, commutative monoids !!!
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
CRDTs : Fancy words
CRDTs are idempotent, commutative monoid !!!
aka
Joint Semi Lattice
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
- Idempotence : A * A = A
- Commutative : A*B = B* A
- Associative : A*(B*C) = (A*B)*C
Joint SemiLattice
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
CvRDTs
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
Some common CRDTs
- Registers (LWW, Multi Valued Register)
- G-Counter
- PN Counter
- G-Set, 2P-Set and OR-Set
- Graph
- Maps
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
G- Counter : grow only counter
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
PN-Counter
- Positive and Negative Counters
- Uses two G-counter
- One for increments(P) and another for
decrement(N)
- Result is the difference
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
G-Set
Grow only set, that only allows to add an element
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
2P-Set
- Two Phase Set
- Built with 2 G-set for add and removal
- Can’t add an already removed element :
Tombstone set
- Has a tombstone that maintains deleted
elements
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
LWW-Element-set
- Add Timestamp to “add”
and “remove” states wit h a
timestamp.
- Greatest timestamps wins
- Close to cassandra model
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
CRDTs in the Wild
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
www.jepsen.io
- Riak
- Cassandra
- Kafka
- etc.
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
Roshi
https://github.com/soundcloud/roshi
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
Eventuate
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT
Limitations
- Garbage Collection
- Not always easy to have Semi Lattice for all
use case
- Inducing some strange behaviours
- Might require adding a stronger consistency
models: Raft, Paxos, etc
- Use when availability is really important
- Don’t use them for your billing application
- Definitely not a panacea
@YourTwitterHandle#Devoxx #YourTag @samklr#devoxx #CRDT

More Related Content

Viewers also liked

Parking Limitation Policies: The Influence of Car Parking Provision on Travel...
Parking Limitation Policies: The Influence of Car Parking Provision on Travel...Parking Limitation Policies: The Influence of Car Parking Provision on Travel...
Parking Limitation Policies: The Influence of Car Parking Provision on Travel...
JumpingJaq
 
Does road traffic congestion drive PT usage and how should we respond when ma...
Does road traffic congestion drive PT usage and how should we respond when ma...Does road traffic congestion drive PT usage and how should we respond when ma...
Does road traffic congestion drive PT usage and how should we respond when ma...
JumpingJaq
 
OB Ch.5
OB Ch.5OB Ch.5
OB Ch.5
Tariq Sohail
 
ALM et Agilite : la convergence
ALM et Agilite : la convergenceALM et Agilite : la convergence
ALM et Agilite : la convergence
Lucian Precup
 
Hybrid lead ads
Hybrid lead adsHybrid lead ads
Hybrid lead ads
HybridRussia
 
مدیریت پروژه های تکنلوژی معلوماتی-محب الله امان ICT Project Management in Per...
مدیریت پروژه های تکنلوژی معلوماتی-محب الله امان ICT Project Management in Per...مدیریت پروژه های تکنلوژی معلوماتی-محب الله امان ICT Project Management in Per...
مدیریت پروژه های تکنلوژی معلوماتی-محب الله امان ICT Project Management in Per...
Muhibullah Aman
 
Pokemon GO Technology Stack
Pokemon GO Technology StackPokemon GO Technology Stack
Pokemon GO Technology Stack
Consulting Vault
 
Baidu Competitive Advantage
Baidu Competitive AdvantageBaidu Competitive Advantage
Baidu Competitive AdvantageGabriele Falcone
 
Beyond Level of Service – Towards a relative measurement of congestion in pla...
Beyond Level of Service – Towards a relative measurement of congestion in pla...Beyond Level of Service – Towards a relative measurement of congestion in pla...
Beyond Level of Service – Towards a relative measurement of congestion in pla...
JumpingJaq
 
visual analysis
visual analysisvisual analysis
Assessing grammar
Assessing grammarAssessing grammar
Assessing grammarSamcruz5
 
Testing grammar
Testing grammarTesting grammar
Testing grammar
Samcruz5
 
Design principles and architecture
Design principles and architectureDesign principles and architecture
Design principles and architecture
Alshimaa Aboelmakarem Farag
 
General Lew Wallace & His Study
General Lew Wallace & His StudyGeneral Lew Wallace & His Study
General Lew Wallace & His Study
WallaceStudy
 
Concevoir son journal interne
Concevoir son journal interneConcevoir son journal interne
Concevoir son journal interne
Cap'Com
 
Testing Grammar
Testing GrammarTesting Grammar
Testing Grammarsongoten77
 
Spatial Organization
Spatial OrganizationSpatial Organization
Spatial OrganizationNicole Masio
 
Implementation of Landscape Design as Elements in Creating Values for Housing...
Implementation of Landscape Design as Elements in Creating Values for Housing...Implementation of Landscape Design as Elements in Creating Values for Housing...
Implementation of Landscape Design as Elements in Creating Values for Housing...
ririkdpratiwi
 

Viewers also liked (18)

Parking Limitation Policies: The Influence of Car Parking Provision on Travel...
Parking Limitation Policies: The Influence of Car Parking Provision on Travel...Parking Limitation Policies: The Influence of Car Parking Provision on Travel...
Parking Limitation Policies: The Influence of Car Parking Provision on Travel...
 
Does road traffic congestion drive PT usage and how should we respond when ma...
Does road traffic congestion drive PT usage and how should we respond when ma...Does road traffic congestion drive PT usage and how should we respond when ma...
Does road traffic congestion drive PT usage and how should we respond when ma...
 
OB Ch.5
OB Ch.5OB Ch.5
OB Ch.5
 
ALM et Agilite : la convergence
ALM et Agilite : la convergenceALM et Agilite : la convergence
ALM et Agilite : la convergence
 
Hybrid lead ads
Hybrid lead adsHybrid lead ads
Hybrid lead ads
 
مدیریت پروژه های تکنلوژی معلوماتی-محب الله امان ICT Project Management in Per...
مدیریت پروژه های تکنلوژی معلوماتی-محب الله امان ICT Project Management in Per...مدیریت پروژه های تکنلوژی معلوماتی-محب الله امان ICT Project Management in Per...
مدیریت پروژه های تکنلوژی معلوماتی-محب الله امان ICT Project Management in Per...
 
Pokemon GO Technology Stack
Pokemon GO Technology StackPokemon GO Technology Stack
Pokemon GO Technology Stack
 
Baidu Competitive Advantage
Baidu Competitive AdvantageBaidu Competitive Advantage
Baidu Competitive Advantage
 
Beyond Level of Service – Towards a relative measurement of congestion in pla...
Beyond Level of Service – Towards a relative measurement of congestion in pla...Beyond Level of Service – Towards a relative measurement of congestion in pla...
Beyond Level of Service – Towards a relative measurement of congestion in pla...
 
visual analysis
visual analysisvisual analysis
visual analysis
 
Assessing grammar
Assessing grammarAssessing grammar
Assessing grammar
 
Testing grammar
Testing grammarTesting grammar
Testing grammar
 
Design principles and architecture
Design principles and architectureDesign principles and architecture
Design principles and architecture
 
General Lew Wallace & His Study
General Lew Wallace & His StudyGeneral Lew Wallace & His Study
General Lew Wallace & His Study
 
Concevoir son journal interne
Concevoir son journal interneConcevoir son journal interne
Concevoir son journal interne
 
Testing Grammar
Testing GrammarTesting Grammar
Testing Grammar
 
Spatial Organization
Spatial OrganizationSpatial Organization
Spatial Organization
 
Implementation of Landscape Design as Elements in Creating Values for Housing...
Implementation of Landscape Design as Elements in Creating Values for Housing...Implementation of Landscape Design as Elements in Creating Values for Housing...
Implementation of Landscape Design as Elements in Creating Values for Housing...
 

Similar to Eventual Consitency with CRDTS

Apache cassandra en production - devoxx 2017
Apache cassandra en production  - devoxx 2017Apache cassandra en production  - devoxx 2017
Apache cassandra en production - devoxx 2017
Alexander DEJANOVSKI
 
apidays LIVE Jakarta - The shell game called eventual consistency by Dasith W...
apidays LIVE Jakarta - The shell game called eventual consistency by Dasith W...apidays LIVE Jakarta - The shell game called eventual consistency by Dasith W...
apidays LIVE Jakarta - The shell game called eventual consistency by Dasith W...
apidays
 
a real-time architecture using Hadoop and Storm at Devoxx
a real-time architecture using Hadoop and Storm at Devoxxa real-time architecture using Hadoop and Storm at Devoxx
a real-time architecture using Hadoop and Storm at DevoxxNathan Bijnens
 
Brief Lecture on Text Mining and Social Network Analysis with R, by Deolu Ade...
Brief Lecture on Text Mining and Social Network Analysis with R, by Deolu Ade...Brief Lecture on Text Mining and Social Network Analysis with R, by Deolu Ade...
Brief Lecture on Text Mining and Social Network Analysis with R, by Deolu Ade...
Deolu Adeleye
 
Join Our Party: The Cloud Native Adventure Brigade (OSS 2019)
Join Our Party: The Cloud Native Adventure Brigade (OSS 2019)Join Our Party: The Cloud Native Adventure Brigade (OSS 2019)
Join Our Party: The Cloud Native Adventure Brigade (OSS 2019)
bridgetkromhout
 
Webinar - Data driven postmortems - Jason Yee
Webinar - Data driven postmortems - Jason Yee Webinar - Data driven postmortems - Jason Yee
Webinar - Data driven postmortems - Jason Yee
Codemotion
 
GDG DART Event at Karachi
GDG DART Event at KarachiGDG DART Event at Karachi
GDG DART Event at KarachiImam Raza
 
VoxxedDays Luxembourg 2019
VoxxedDays Luxembourg 2019VoxxedDays Luxembourg 2019
VoxxedDays Luxembourg 2019
Cédrick Lunven
 
A Taxonomy of Clustering, or, No Container is an Island
A Taxonomy of Clustering, or, No Container is an IslandA Taxonomy of Clustering, or, No Container is an Island
A Taxonomy of Clustering, or, No Container is an Island
Ted M. Young
 
Performance By Design
Performance By DesignPerformance By Design
Performance By Design
Guy Harrison
 
Event processing without breaking production
Event processing without breaking productionEvent processing without breaking production
Event processing without breaking production
nzender
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015
OrientDB - the 2nd generation  of  (Multi-Model) NoSQL - Devoxx Belgium 2015OrientDB - the 2nd generation  of  (Multi-Model) NoSQL - Devoxx Belgium 2015
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015
Luigi Dell'Aquila
 
[DataSciCon] Divide, distribute and conquer stream v. batch
[DataSciCon] Divide, distribute and conquer  stream v. batch[DataSciCon] Divide, distribute and conquer  stream v. batch
[DataSciCon] Divide, distribute and conquer stream v. batch
Viktor Gamov
 
GRAKN.AI: The Hyper-Relational Database for Knowledge-Oriented Systems
GRAKN.AI: The Hyper-Relational Database for Knowledge-Oriented SystemsGRAKN.AI: The Hyper-Relational Database for Knowledge-Oriented Systems
GRAKN.AI: The Hyper-Relational Database for Knowledge-Oriented Systems
Vaticle
 
What is quality code? From cruft to craft
What is quality code? From cruft to craftWhat is quality code? From cruft to craft
What is quality code? From cruft to craft
Nick DeNardis
 
Power Your Teams with Git
Power Your Teams with GitPower Your Teams with Git
Power Your Teams with Git
TechWell
 

Similar to Eventual Consitency with CRDTS (16)

Apache cassandra en production - devoxx 2017
Apache cassandra en production  - devoxx 2017Apache cassandra en production  - devoxx 2017
Apache cassandra en production - devoxx 2017
 
apidays LIVE Jakarta - The shell game called eventual consistency by Dasith W...
apidays LIVE Jakarta - The shell game called eventual consistency by Dasith W...apidays LIVE Jakarta - The shell game called eventual consistency by Dasith W...
apidays LIVE Jakarta - The shell game called eventual consistency by Dasith W...
 
a real-time architecture using Hadoop and Storm at Devoxx
a real-time architecture using Hadoop and Storm at Devoxxa real-time architecture using Hadoop and Storm at Devoxx
a real-time architecture using Hadoop and Storm at Devoxx
 
Brief Lecture on Text Mining and Social Network Analysis with R, by Deolu Ade...
Brief Lecture on Text Mining and Social Network Analysis with R, by Deolu Ade...Brief Lecture on Text Mining and Social Network Analysis with R, by Deolu Ade...
Brief Lecture on Text Mining and Social Network Analysis with R, by Deolu Ade...
 
Join Our Party: The Cloud Native Adventure Brigade (OSS 2019)
Join Our Party: The Cloud Native Adventure Brigade (OSS 2019)Join Our Party: The Cloud Native Adventure Brigade (OSS 2019)
Join Our Party: The Cloud Native Adventure Brigade (OSS 2019)
 
Webinar - Data driven postmortems - Jason Yee
Webinar - Data driven postmortems - Jason Yee Webinar - Data driven postmortems - Jason Yee
Webinar - Data driven postmortems - Jason Yee
 
GDG DART Event at Karachi
GDG DART Event at KarachiGDG DART Event at Karachi
GDG DART Event at Karachi
 
VoxxedDays Luxembourg 2019
VoxxedDays Luxembourg 2019VoxxedDays Luxembourg 2019
VoxxedDays Luxembourg 2019
 
A Taxonomy of Clustering, or, No Container is an Island
A Taxonomy of Clustering, or, No Container is an IslandA Taxonomy of Clustering, or, No Container is an Island
A Taxonomy of Clustering, or, No Container is an Island
 
Performance By Design
Performance By DesignPerformance By Design
Performance By Design
 
Event processing without breaking production
Event processing without breaking productionEvent processing without breaking production
Event processing without breaking production
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015
OrientDB - the 2nd generation  of  (Multi-Model) NoSQL - Devoxx Belgium 2015OrientDB - the 2nd generation  of  (Multi-Model) NoSQL - Devoxx Belgium 2015
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015
 
[DataSciCon] Divide, distribute and conquer stream v. batch
[DataSciCon] Divide, distribute and conquer  stream v. batch[DataSciCon] Divide, distribute and conquer  stream v. batch
[DataSciCon] Divide, distribute and conquer stream v. batch
 
GRAKN.AI: The Hyper-Relational Database for Knowledge-Oriented Systems
GRAKN.AI: The Hyper-Relational Database for Knowledge-Oriented SystemsGRAKN.AI: The Hyper-Relational Database for Knowledge-Oriented Systems
GRAKN.AI: The Hyper-Relational Database for Knowledge-Oriented Systems
 
What is quality code? From cruft to craft
What is quality code? From cruft to craftWhat is quality code? From cruft to craft
What is quality code? From cruft to craft
 
Power Your Teams with Git
Power Your Teams with GitPower Your Teams with Git
Power Your Teams with Git
 

More from Samir Bessalah

Machine Learning In Production
Machine Learning In ProductionMachine Learning In Production
Machine Learning In Production
Samir Bessalah
 
Tuning tips for Apache Spark Jobs
Tuning tips for Apache Spark JobsTuning tips for Apache Spark Jobs
Tuning tips for Apache Spark Jobs
Samir Bessalah
 
High Performance RPC with Finagle
High Performance RPC with FinagleHigh Performance RPC with Finagle
High Performance RPC with Finagle
Samir Bessalah
 
scalable machine learning
scalable machine learningscalable machine learning
scalable machine learning
Samir Bessalah
 
mesos-devoxx14
mesos-devoxx14mesos-devoxx14
mesos-devoxx14
Samir Bessalah
 
Algebird : Abstract Algebra for big data analytics. Devoxx 2014
Algebird : Abstract Algebra for big data analytics. Devoxx 2014Algebird : Abstract Algebra for big data analytics. Devoxx 2014
Algebird : Abstract Algebra for big data analytics. Devoxx 2014
Samir Bessalah
 
Big Data Analytics with Scala at SCALA.IO 2013
Big Data Analytics with Scala at SCALA.IO 2013Big Data Analytics with Scala at SCALA.IO 2013
Big Data Analytics with Scala at SCALA.IO 2013
Samir Bessalah
 
Structures de données exotiques
Structures de données exotiquesStructures de données exotiques
Structures de données exotiques
Samir Bessalah
 

More from Samir Bessalah (9)

Machine Learning In Production
Machine Learning In ProductionMachine Learning In Production
Machine Learning In Production
 
Tuning tips for Apache Spark Jobs
Tuning tips for Apache Spark JobsTuning tips for Apache Spark Jobs
Tuning tips for Apache Spark Jobs
 
High Performance RPC with Finagle
High Performance RPC with FinagleHigh Performance RPC with Finagle
High Performance RPC with Finagle
 
scalable machine learning
scalable machine learningscalable machine learning
scalable machine learning
 
mesos-devoxx14
mesos-devoxx14mesos-devoxx14
mesos-devoxx14
 
Algebird : Abstract Algebra for big data analytics. Devoxx 2014
Algebird : Abstract Algebra for big data analytics. Devoxx 2014Algebird : Abstract Algebra for big data analytics. Devoxx 2014
Algebird : Abstract Algebra for big data analytics. Devoxx 2014
 
Big Data Analytics with Scala at SCALA.IO 2013
Big Data Analytics with Scala at SCALA.IO 2013Big Data Analytics with Scala at SCALA.IO 2013
Big Data Analytics with Scala at SCALA.IO 2013
 
Scala+data
Scala+dataScala+data
Scala+data
 
Structures de données exotiques
Structures de données exotiquesStructures de données exotiques
Structures de données exotiques
 

Recently uploaded

Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 

Recently uploaded (20)

Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 

Eventual Consitency with CRDTS

Editor's Notes

  1. availability : every req gets a response consistency all nodes see the same data at the same time Partition tolerance system keeps going despite failure or message loss
  2. availability : every req gets a response consistency all nodes see the same data at the same time Partition tolerance system keeps going despite failure or message loss
  3. Linearizability: single-operation, single-object, real-time order Serializability: multi-operation, multi-object, arbitrary total order
  4. availability : every req gets a response consistency all nodes see the same data at the same time Partition tolerance system keeps going despite failure or message loss
  5. Semantic Resolution : Let business decide Vector Clock : A vector clock (vclock) is a system for tracking the causality of concurrent updates to a piece of data.
  6. P and Negative Counter
  7. Hard to make them converge Can build other data types on top of them Only two operations : Add an element and Remove
  8. 2 Phase
  9. 2 Phase
  10. Casandra Columns Cassandra collections Riak Data type : PN-counter