Slide 1

Slide 1 text

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?

Slide 11

Slide 11 text

http://blog.nahurst.com/visual-guide-to-nosql-systems

Slide 12

Slide 12 text

ALLOWING PARTITIONS YOU MUST CHOOSE AVAILABILITY OR CONSISTENCY