SlideShare a Scribd company logo
We're All Distributed Systems
Developers Now
By Aaron Stannard,
Founder & CEO
Petabridge
High Expectations
The obvious way to scale is
wrong.
We're all distributed systems devs now: a crash course in distributed programming
We're all distributed systems devs now: a crash course in distributed programming
Obvious Solution: Sharding
Brittle
Scenario 2: Real-time User
Interactivity
Obvious Solution:
Read-after-Write
Reality
Distributed Systems 101
Decentralization
Elastic (Join)
Elastic (Leave)
Recover from Failures
Availability through Replication
Event and Message Driven
Programming
Properties of Messages
Messaging Patterns
Messaging Protocols
Gossip: How Nodes Discover
Each Other
Stateful Application
Programming
Stateful Apps Serve Results
from Memory
Fastest Response Time?
State Locality
State Makes Protocols Work
CAP Theorem
CAP Terminologies
CAP Trade-offs
Highest Consistency?
Consistency vs. Availability
Fault and Resource Isolation
with Microservices
WebCrawler Microservices
WebCrawler Network Topology
Try to make CPU / Memory-
intensive tasks into stateless
services
Stateful services should
increase CPU / memory
utilization slowly
Petabridge
https://petabridge.com/

More Related Content

PDF
Full-Stack, Message-oriented Programming w/ Akka.NET Actors
PPTX
Introduction to Akka.NET and Akka.Cluster
PDF
Akka.NET: The Future of Distributed Programming in .NET
PPTX
Continuous Deployment with Akka.Cluster and Kubernetes (Akka.NET)
PDF
Mesos and Container Schedulers
PDF
Syncromatics Akka.NET Case Study
PPTX
Discovering the Service Fabric's actor model
PPTX
Discovering the Service Fabric's actor model
Full-Stack, Message-oriented Programming w/ Akka.NET Actors
Introduction to Akka.NET and Akka.Cluster
Akka.NET: The Future of Distributed Programming in .NET
Continuous Deployment with Akka.Cluster and Kubernetes (Akka.NET)
Mesos and Container Schedulers
Syncromatics Akka.NET Case Study
Discovering the Service Fabric's actor model
Discovering the Service Fabric's actor model

What's hot (20)

PDF
Distributed Deep Learning with Docker at Salesforce
PDF
Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - w...
PPTX
Being RDBMS Free -- Alternate Approaches to Data Persistence
PPTX
CQRS Evolved - CQRS + Akka.NET
PPT
PowerPoint Format
PDF
Actor model in F# and Akka.NET
PDF
Introduction to the Actor Model
PPTX
DDD, CQRS and testing with ASP.Net MVC
PDF
Go Reactive: Building Responsive, Resilient, Elastic & Message-Driven Systems
PPTX
Akka for big data developers
PDF
IoT in salsa Serverless
PDF
Stream Collections - Scala Days
PPTX
Akka.Net Overview
PDF
Threading Made Easy! A Busy Developer’s Guide to Kotlin Coroutines
PDF
DEF CON 27 - CHRISTOPHER ROBERTS - firmware slap
PDF
Designing a reactive real-time data platform: Architecture and Infrastructure...
PDF
Microservice message routing on Kubernetes
PDF
Effective VM Scheduling Strategy for Heterogeneous Cloud Environment
PDF
Xmas Serverless Transformation: when the elf doesn’t scale!
ODP
Consistency in Distributed Systems
Distributed Deep Learning with Docker at Salesforce
Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - w...
Being RDBMS Free -- Alternate Approaches to Data Persistence
CQRS Evolved - CQRS + Akka.NET
PowerPoint Format
Actor model in F# and Akka.NET
Introduction to the Actor Model
DDD, CQRS and testing with ASP.Net MVC
Go Reactive: Building Responsive, Resilient, Elastic & Message-Driven Systems
Akka for big data developers
IoT in salsa Serverless
Stream Collections - Scala Days
Akka.Net Overview
Threading Made Easy! A Busy Developer’s Guide to Kotlin Coroutines
DEF CON 27 - CHRISTOPHER ROBERTS - firmware slap
Designing a reactive real-time data platform: Architecture and Infrastructure...
Microservice message routing on Kubernetes
Effective VM Scheduling Strategy for Heterogeneous Cloud Environment
Xmas Serverless Transformation: when the elf doesn’t scale!
Consistency in Distributed Systems
Ad

Viewers also liked (20)

PDF
Concurrency, Without the Pain: An Intro to Akka.NET @ Bay.NET
PPTX
Automed .NET Performance Testing with NBench
PDF
Continuous Web Performance Monitoring with Jenkins
PDF
Akka.NET Fundamentals — #ProgNet15
DOCX
Jenkins/Jmeter Configuration - Colombo Performance Test Meetup - 2016 April
PPTX
Performance Testing with LoadRunner Case Study
PPTX
Using Jenkins and Jmeter to build a scalable Load Testing solution
PDF
Building applications with akka.net
PDF
Distributed Transactions in Akka.NET
PPTX
From Zero to the Actor Model (With Akka.Net) - CodeMash2017 - Tamir Dresher
PDF
Continuous Delivery Pipeline with Docker and Jenkins
PDF
CI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
PPTX
How to Analyze Reports in Jmeter
PDF
Continuous integration and delivery for java based web applications
PDF
Docker Overview - Rise of the Containers
PDF
How to start performance testing project
PDF
Continuous Integration using Docker & Jenkins
PDF
Chef Fundamentals Training Series Module 1: Overview of Chef
PPTX
Interpreting Performance Test Results
PDF
Jenkins Docker
Concurrency, Without the Pain: An Intro to Akka.NET @ Bay.NET
Automed .NET Performance Testing with NBench
Continuous Web Performance Monitoring with Jenkins
Akka.NET Fundamentals — #ProgNet15
Jenkins/Jmeter Configuration - Colombo Performance Test Meetup - 2016 April
Performance Testing with LoadRunner Case Study
Using Jenkins and Jmeter to build a scalable Load Testing solution
Building applications with akka.net
Distributed Transactions in Akka.NET
From Zero to the Actor Model (With Akka.Net) - CodeMash2017 - Tamir Dresher
Continuous Delivery Pipeline with Docker and Jenkins
CI and CD at Scale: Scaling Jenkins with Docker and Apache Mesos
How to Analyze Reports in Jmeter
Continuous integration and delivery for java based web applications
Docker Overview - Rise of the Containers
How to start performance testing project
Continuous Integration using Docker & Jenkins
Chef Fundamentals Training Series Module 1: Overview of Chef
Interpreting Performance Test Results
Jenkins Docker
Ad

Similar to We're all distributed systems devs now: a crash course in distributed programming (20)

PPTX
Designing distributed systems
PDF
Azure and cloud design patterns
PDF
CS9222 ADVANCED OPERATING SYSTEMS
PPT
Distributed OPERATING SYSTEM FOR BACHELOR OF BUSINESS INFORMATION TECHNOLOGY
PPTX
Designing Application over mobile environment
PDF
System Structure for Dependable Software Systems
PPTX
Skeuomorphs, Databases, and Mobile Performance
PPTX
Skeuomorphs, Databases, and Mobile Performance
PDF
DistributedOSintro.pdf from CSE Distributed operating system
PDF
Stateful on Stateless - The Future of Applications in the Cloud
PDF
Stream Processing with CompletableFuture and Flow in Java 9
PPT
Linking Programming models between Grids, Web 2.0 and Multicore
PPTX
Clustercomputingpptl2 120204125126-phpapp01
PPTX
Cluster computing pptl (2)
PPTX
Cloud Computing
PPTX
Cloud Computing
PDF
Deconstructing Monoliths with Domain Driven Design
PDF
Beyond Off the-Shelf Consensus
PDF
Handout1
PPTX
The Art of IOS and Distributed System IO
Designing distributed systems
Azure and cloud design patterns
CS9222 ADVANCED OPERATING SYSTEMS
Distributed OPERATING SYSTEM FOR BACHELOR OF BUSINESS INFORMATION TECHNOLOGY
Designing Application over mobile environment
System Structure for Dependable Software Systems
Skeuomorphs, Databases, and Mobile Performance
Skeuomorphs, Databases, and Mobile Performance
DistributedOSintro.pdf from CSE Distributed operating system
Stateful on Stateless - The Future of Applications in the Cloud
Stream Processing with CompletableFuture and Flow in Java 9
Linking Programming models between Grids, Web 2.0 and Multicore
Clustercomputingpptl2 120204125126-phpapp01
Cluster computing pptl (2)
Cloud Computing
Cloud Computing
Deconstructing Monoliths with Domain Driven Design
Beyond Off the-Shelf Consensus
Handout1
The Art of IOS and Distributed System IO

More from petabridge (14)

PPTX
Diagnosing Production Akka.NET Problems with OpenTelemetry.pptx
PPTX
Leveraging AI for Software Developer Productivity.pptx
PPTX
NET Systems Programming Learned the Hard Way.pptx
PPTX
DotNext 2020 - When and How to Use the Actor Model and Akka.NET
PPTX
.NET Conf 2019 When and How to Use the Actor Model: an Introduction to Akka...
PPTX
Introduction to Distributed Tracing
PPTX
Akka.NET: Concurrency without the Pain
PPTX
The New .NET Enterprise Stack
PDF
OSS From the Outside In - A Personal Journey With Akka.NET
PDF
Akka.NET @ London.NET
PDF
Slides - Intro to Akka.Cluster
PDF
Akka.NET: Concurrency Without the Pain (Intro to the Actor Model)
PDF
Streaming ETL With Akka.NET
PPTX
2 12-2015 - Cassandra Day LA - Using DataStax Enterprise and Actor Systems fo...
Diagnosing Production Akka.NET Problems with OpenTelemetry.pptx
Leveraging AI for Software Developer Productivity.pptx
NET Systems Programming Learned the Hard Way.pptx
DotNext 2020 - When and How to Use the Actor Model and Akka.NET
.NET Conf 2019 When and How to Use the Actor Model: an Introduction to Akka...
Introduction to Distributed Tracing
Akka.NET: Concurrency without the Pain
The New .NET Enterprise Stack
OSS From the Outside In - A Personal Journey With Akka.NET
Akka.NET @ London.NET
Slides - Intro to Akka.Cluster
Akka.NET: Concurrency Without the Pain (Intro to the Actor Model)
Streaming ETL With Akka.NET
2 12-2015 - Cassandra Day LA - Using DataStax Enterprise and Actor Systems fo...

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
Network Security Unit 5.pdf for BCA BBA.
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Spectroscopy.pptx food analysis technology
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Electronic commerce courselecture one. Pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
MYSQL Presentation for SQL database connectivity
NewMind AI Weekly Chronicles - August'25 Week I
Dropbox Q2 2025 Financial Results & Investor Presentation
Per capita expenditure prediction using model stacking based on satellite ima...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
20250228 LYD VKU AI Blended-Learning.pptx
Empathic Computing: Creating Shared Understanding
Network Security Unit 5.pdf for BCA BBA.
“AI and Expert System Decision Support & Business Intelligence Systems”
sap open course for s4hana steps from ECC to s4
Unlocking AI with Model Context Protocol (MCP)
Building Integrated photovoltaic BIPV_UPV.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Spectroscopy.pptx food analysis technology
Advanced methodologies resolving dimensionality complications for autism neur...
Electronic commerce courselecture one. Pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
MYSQL Presentation for SQL database connectivity

Editor's Notes

  • #2: This is a talk about the future of back-end systems development and the new realities of our work in this field. We will not be diving into lots of gritty implementation details, nor will we be advocating any specific technologies as part of this presentation. Rather, the goal is to help introduce all of you to the concepts, algorithms, and techniques championed by industry leaders in the field of distributed systems development. And we’ll start our look at those concepts with a quick reality check – taking stock of what’s really happening in our industry right now and why the obvious solutions are doomed to fail.
  • #3: The demands on our back-end services have never been higher, thanks to the invention of smartphones and other new types of screens we have to support. Our applications are expected to be available, 24 hours a day 7 days a week. Downtime is an unforgivable sin – users demand availability. Could you imagine Google or Amazon being offline for planned maintenance for even a couple of hours? The world would shut down. That expectation of “always on” availability no longer applies solely to giants like them – it applies to everyone. But it gets even more demanding from there – not only do we always have to be available, but now we need to be available across multiple types of devices like SmartPhones, tablets, and even watches now. And on top of that – we’re expected to provide value immediately in the form of notifications, fresh content, and real-time experiences. And NOT only that –but we’re also expected to collect 100x the data we did before and actually put it to some use through machine learning, analytics, marketing automation. And even more! We might even be expected to put an API for other developers to use on top of our own applications! The point of all of this: our industry is at an inflection point. Our software and our software developers must be able to deliver more, because that’s what customers and users demand.
  • #4: And the obvious ways of scaling to support these demands are inherently wrong. Let’s take a look.
  • #5: So take our standard enterprise CRUD application – stateless web applications on top of a SQL database with some OLAP for data analysis and some private web apps for things like reporting, BI, and internal administration running behind a firewall. This was the state of the art from the 1990s until the mid-2000s, but it’s still an architecture that works well for smaller applications.
  • #6: However, one day this application isn’t so small anymore – the volume, variety, and velocity of user requests has grown and grown and grown over time and now the service has a major problem: contention around its relational database. The problem with relational models is that they inherently require synchronization, which means locks in this case, in order to fulfill all of its isolation, consistency, and transactionality guarantees. That works great for a while, but eventually you reach a point where your SQL database becomes a single point of failure and bottleneck for everything else in the system and you start to become less available and lose business as a result.
  • #7: Now I’ve totally stolen this slide from Jonathan Ellis’ keynote at the 2015 Cassandra Summit, but I’m taking it because it illustrates a great point. The obvious solution to this problem was to sub-divide your database into multiple physical and logical regions using a technique called sharding. So you’d have lots of physical clones of our previous master +