ALL MAKE WE ALL MAKE WE ALL MAKE WE ALL MAKE WE ALL MAKE WE ALL MAKE WE ALL MAKE WE ALL MAKE WE ALL MAKE WE ALL MAKE WE ALL MAKE WE ALL MAKE WE ALL MAKE DISTRIBUTED SYSTEMS DISTRIBUTED SYSTEMS DISTRIBUTED SYSTEMS DISTRIBUTED SYSTEMS DISTRIBUTED SYSTEMS DISTRIBUTED SYSTEMS MACIEJ RZĄSA @mjrzasa
matters self-organising teams distributed systems (occasionally) knowledge sharing Rzeszów Ruby User Group ( ) Rzeszów University of Technology rrug.pl
as a single coherent system Andrew Tannenbaum A distributed system is one where a machine I’ve never heard of can cause my program to fail. Leslie Lamport DISTRIBUTED SYSTEM
only with network connection limited features possible (read-only) after reconnection: fetching data (one-way sync) convenient for developers CP: ORDNUNG MUSS SEIN
them at the same time (Monday) version 1.0: fetch all changes at once growing data size: timeouts, memory limitations on android obvious solution: pagination
cart) payments offline (!) every client (android) creates its own tickets and adds ticket items tickets available on the server and set to other mobile clients
NOT SIMPLY ONE DOES NOT SIMPLY ONE DOES NOT SIMPLY ONE DOES NOT SIMPLY ONE DOES NOT SIMPLY ONE DOES NOT SIMPLY ONE DOES NOT SIMPLY ONE DOES NOT SIMPLY SYNC MUTABLE STATE SYNC MUTABLE STATE SYNC MUTABLE STATE SYNC MUTABLE STATE SYNC MUTABLE STATE SYNC MUTABLE STATE source: youtube.com
;-) UUID (v4) really low risk of collision, may be generated on the client-side sync can be repeated multiple times helpful on failures (of the network, server, client) effect: idempotence e4043456-b29e-4d80-afaf-4d65246f1d36
exclude received changes in two-way sync sync immutable rather than mutable identify data on client to assure idempotence GET /items? since=1234 page_size=3
to web/mobile apps as well the network is unreliable CAP: consistency - availability - partition tolerance: you cannot have all three CP and AP approaches may be mixed in one app synchronize immutable values and apply them to mutable objects (events vs entities) idempotency matters source of the icons on my diarams: http:/ /www.flaticon.com
really? ;-) source of the icons on my diagrams: CAP 12 years later Jepsen Netwok is reliable Starbucks Does Not Use Two-Phase Commit Latency: The New Web Performance Bottleneck http:/ /www.flaticon.com