Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CAP Theorem Basics
Search
mrzasa
August 05, 2015
Programming
0
61
CAP Theorem Basics
Slides for Ruby Talks (workshops at PGS Software). Simple explaination of the CAP theorem,
mrzasa
August 05, 2015
Tweet
Share
More Decks by mrzasa
See All by mrzasa
Debug Like a Scientist! Copenhagen Developers Festival 2024
mrzasa
1
47
API Optimization Tale: Monitor, Fix and Deploy (on Friday). GopherCon Europe 2023
mrzasa
0
56
API Optimization Tale: Monitor, Fix and Deploy (on Friday). RubyConf BR
mrzasa
0
21
API Optimization Tale: Monitor, Fix and Deploy (on Friday). RailsConf 2021
mrzasa
0
32
API Optimization Tale: Monitor, Fix and Deploy (on Friday). Italian Ruby Day
mrzasa
0
220
I Can Kill Your Browser With a Simple Regexp. Workshop
mrzasa
0
75
[PL] Kto to jest senior developer? - 4Developers 2019
mrzasa
0
140
[PL] (HackYeah) Nie ma nic prostszego niż napisanie wolnego regexpa
mrzasa
0
150
Writing slow regexp is easier than you think (and want it to be)
mrzasa
0
380
Other Decks in Programming
See All in Programming
Keeping it Ruby: Why Your Product Needs a Ruby SDK - RubyWorld 2024
envek
0
180
MCP with Cloudflare Workers
yusukebe
2
220
StarlingMonkeyを触ってみた話 - 2024冬
syumai
3
270
第5回日本眼科AI学会総会_AIコンテスト_3位解法
neilsaw
0
170
今からはじめるAndroidアプリ開発 2024 / DevFest 2024
star_zero
0
1k
Semantic Kernelのネイティブプラグインで知識拡張をしてみる
tomokusaba
0
180
create_tableをしただけなのに〜囚われのuuid編〜
daisukeshinoku
0
240
命名をリントする
chiroruxx
1
390
useSyncExternalStoreを使いまくる
ssssota
6
1k
ソフトウェアの振る舞いに着目し 複雑な要件の開発に立ち向かう
rickyban
0
890
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
710
Criando Commits Incríveis no Git
marcelgsantos
2
170
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
169
14k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
Done Done
chrislema
181
16k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
How to Ace a Technical Interview
jacobian
276
23k
Agile that works and the tools we love
rasmusluckow
328
21k
4 Signs Your Business is Dying
shpigford
181
21k
Designing for humans not robots
tammielis
250
25k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
Transcript
CAP THEOREM OR: YOU CANNOT HAVE EVERYTHING Maciej Rząsa
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.
REALLY? WHERE DO I USE IT? ssh/ p ssh/ p
email web mobile apps
ASSUMPTIONS system that stores data asynchronous network
THREE FEATURES Consistency Availability Partition tolerance
A read sees all previously completed writes CONSISTENCY
Reads and writes always succeed. AVAILABILITY
Guaranteed properties are maintained even when network failures prevent some
machines from communicating with others. PARTITION TOLERANCE
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
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?
http://blog.nahurst.com/visual-guide-to-nosql-systems
ALLOWING PARTITIONS YOU MUST CHOOSE AVAILABILITY OR CONSISTENCY