CAP THEOREM
OR: YOU CANNOT HAVE EVERYTHING
Maciej Rząsa
Slide 2
Slide 2 text
DISTRIBUTED SYSTEM
A distributed system is a so ware system in which
components located on networked computers communicate
and coordinate their actions by passing messages.
Slide 3
Slide 3 text
REALLY? WHERE DO I USE IT?
ssh/ p
ssh/ p
email
web
mobile apps
Slide 4
Slide 4 text
ASSUMPTIONS
system that stores data
asynchronous network
Slide 5
Slide 5 text
THREE FEATURES
Consistency
Availability
Partition tolerance
Slide 6
Slide 6 text
A read sees all previously completed writes
CONSISTENCY
Slide 7
Slide 7 text
Reads and writes always succeed.
AVAILABILITY
Slide 8
Slide 8 text
Guaranteed properties are maintained even when network
failures prevent some machines from communicating with
others.
PARTITION TOLERANCE
Slide 9
Slide 9 text
In a distributed system connected with an asynchronous
network you can pick two. Why? Consider two clients
attached to nodes without network connection.
CAP: CHOOSE TWO
Slide 10
Slide 10 text
WHERE IS IT USEFUL?
web forms: fetch data, wait and send it
mobile apps: offline mode
distributed databases: mongo, redis, elastic search
what about the project you develop?