System Design Basics πŸ• + Spring Boot



This content originally appeared on DEV Community and was authored by Abdulfatai Abdulwasiu Aremu

I explained System Design to my friend using a pizza shop πŸ•
Turns out it’s the easiest way to get Scalability, Latency, Throughput, Consistency, and Availability!

1 Scalability – More chefs, more pizzas

@RestController
class PizzaController {
    @GetMapping("/order")
    String orderPizza() { return "🍕 Pizza ready!"; }
}

1 instance = 10 orders/min
10 instances = 100 orders/min

2 Latency – How long until your pizza arrives?

@GetMapping("/order")
String orderPizza() throws InterruptedException {
    Thread.sleep(3000); // 3 sec delay
    return "🍕 Pizza ready after wait!";
}

Delays = unhappy customers

3 Throughput – Pizzas per minute

Run a load test:

ab -n 1000 -c 50 http://localhost:8080/order

One endpoint, but throughput depends on kitchen β€œpower.”

4 Consistency – Pizza means pizza

@RestController
class PizzaController {
    @GetMapping("/order")
    String orderPizza() {
        return Math.random() > 0.7 ? "🍝 Pasta?" : "🍕 Pizza";
    }
}

Users want the same result every time!

5 Availability – Always open

@GetMapping("/health")
String health() { return "✅ I’m alive!"; }

Service stays open, even if one instance crashes.

Takeaway

System design is like running a pizza shop πŸ•

  • Scalability β†’ more chefs
  • Latency β†’ wait time
  • Throughput β†’ orders per min
  • Consistency β†’ pizza = pizza
  • Availability β†’ always open

What’s your favorite system design analogy?


This content originally appeared on DEV Community and was authored by Abdulfatai Abdulwasiu Aremu