Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Bulletproof communication in distributed systems

Bulletproof communication in distributed systems

Jakub Kubryński

March 30, 2019
Tweet

More Decks by Jakub Kubryński

Other Decks in Programming

Transcript

  1. $ WHOAMI $ WHOAMI DEVSKILLER CO-FOUNDER DEVSKILLER CO-FOUNDER BOTTEGA TRAINER

    BOTTEGA TRAINER DEVOXX.PL PROGRAM COMMITTEE MEMBER DEVOXX.PL PROGRAM COMMITTEE MEMBER SPRING CLOUD CONTRACT CO-AUTHOR SPRING CLOUD CONTRACT CO-AUTHOR
  2. DISTRIBUTED SYSTEMS FALLACIES DISTRIBUTED SYSTEMS FALLACIES THE NETWORK IS RELIABLE

    THE NETWORK IS RELIABLE LATENCY IS ZERO LATENCY IS ZERO THE NETWORK IS SECURE THE NETWORK IS SECURE TOPOLOGY DOESN'T CHANGE TOPOLOGY DOESN'T CHANGE
  3. IF YOU WON'T RESPECT FALLACIES IF YOU WON'T RESPECT FALLACIES

    YOU'LL BUILD DISTRIBUTED MONOLITH YOU'LL BUILD DISTRIBUTED MONOLITH
  4. IN DISTRIBUTED SYSTEMS THEY ARE NOT IN DISTRIBUTED SYSTEMS THEY

    ARE NOT NETWORK ISSUES NETWORK ISSUES REDEPLOYS REDEPLOYS OUTAGES OUTAGES
  5. AVAILABILITY VS DOWNTIME AVAILABILITY VS DOWNTIME 9 9 . 9

    9 9 % 35d 4d 8h 50m 5m per year 2.5h 14m 1.5m 8s 0.8s per day
  6. 99.9 (1.5 MIN/DAY) 99.9 (1.5 MIN/DAY) 5 * 99.9 =>

    99.5 (7 MIN/DAY) 5 * 99.9 => 99.5 (7 MIN/DAY)
  7. IN DISTRIBUTED SYSTEMS IT'S NOT IN DISTRIBUTED SYSTEMS IT'S NOT

    CLOUD NATIVE / CONTAINERS CLOUD NATIVE / CONTAINERS DYNAMIC SCALABILITY DYNAMIC SCALABILITY
  8. IT'S ALL ABOUT COMMUNICATION IT'S ALL ABOUT COMMUNICATION SO NICE

    TO KNOW IT WORKS SO NICE TO KNOW IT WORKS
  9. AUTONOMY IS HARD AUTONOMY IS HARD BECAUSE WE NEED TO

    COORDINATE DEPENDENCIES BECAUSE WE NEED TO COORDINATE DEPENDENCIES AND BE BACKWARD COMPATIBLE AND BE BACKWARD COMPATIBLE
  10. VERIFY CONTRACTS VERIFY CONTRACTS A == C && B ==

    C A == C && B == C A == B A == B
  11. ANSCOMBE'S QUARTET ANSCOMBE'S QUARTET Mean of x => 9 Sample

    variance of x => 11 Mean of y => 7.50 Sample variance of y => 4.125 Correlation => 0.816 Linear regression => y = 3.00 + 0.500x