What Is Discrete Event Simulation? (And Why Should You Care?)

Discrete event simulation sounds academic. It's not. It's one of the most practical tools an engineer can learn.

The One-Sentence Explanation

Discrete event simulation (DES) models systems where things happen at specific points in time—customers arrive, machines break, orders ship—and lets you see what happens next.

Why "Discrete"?

Time in DES jumps from event to event. Nothing happens in between.

Customer arrives at 9:00. Gets served at 9:05. Leaves at 9:12. The simulation doesn't care about 9:01, 9:02, 9:03—nothing interesting happens then.

This is different from continuous simulation, where things change constantly (think: chemical reactions, population growth). DES is for systems with distinct events.

A Mental Model

Imagine a queue at a coffee shop.

That's discrete event simulation. Events happen. Time jumps. State changes. Repeat.

What DES Captures

Good DES models capture:

Randomness Customers don't arrive exactly every 5 minutes. Service doesn't take exactly 3 minutes. Real systems have variation. DES models it.

Queuing When demand exceeds capacity, queues form. DES tracks who's waiting, how long, and what happens when resources free up.

Resource Constraints There are only 3 tills. Only 5 nurses. Only 1 machine. DES respects these limits and shows what happens because of them.

Interdependencies Step B can't start until Step A finishes. Machine 2 needs output from Machine 1. DES handles these dependencies.

Real-World Applications

DES is everywhere, whether you recognise it or not:

Industry Example Problem
Healthcare How many beds do we need?
Manufacturing Where's the bottleneck?
Logistics How many trucks should we schedule?
Retail How many checkouts during peak hours?
Call centres What's the right staffing level?
Airports How long will security queues be?

Why Not Just Use Spreadsheets?

You could calculate averages: 100 customers, 3 minutes each, 300 minutes of work.

But averages lie.

They don't show you what happens when 20 customers arrive in 10 minutes. They don't capture the queue building up. They don't reveal that most customers wait 2 minutes but some wait 30.

DES shows you the distribution, not just the average. It shows you the worst case, not just the typical case.

Why Not Just Watch the Real System?

Because you can't afford to.

Simulation lets you experiment without consequences. Test ideas. Break things safely. Learn before committing.

The Building Blocks

Every DES model has:

  1. Entities - The things moving through your system (customers, products, patients)
  2. Resources - The limited things entities need (staff, machines, beds)
  3. Processes - The activities that take time (serving, processing, treating)
  4. Events - Things that happen at specific times (arrivals, completions, breakdowns)
  5. Queues - Where entities wait for resources

Understand these, and you can model almost any operational system.

DES vs Other Methods

Method Best For
Discrete Event Processes, queues, operations
Agent-Based Individual behaviour, emergence
System Dynamics Feedback loops, high-level trends
Monte Carlo Risk analysis, uncertainty

DES is the workhorse of operational improvement.

Getting Started

The easiest way to learn DES is to build something simple:

  1. Model a single-server queue
  2. Add random arrivals
  3. Track waiting times
  4. Experiment with capacity

In Python, SimPy makes this straightforward:

import simpy

def customer(env, counter):
    arrival = env.now
    with counter.request() as req:
        yield req
        print(f"Waited {env.now - arrival:.1f}")
        yield env.timeout(3)

env = simpy.Environment()
counter = simpy.Resource(env, capacity=1)
for i in range(5):
    env.process(customer(env, counter))
env.run()

Why This Matters for Your Career

Engineers who can simulate are engineers who can predict.

Instead of "I think we need more capacity," you say "The model shows a 95% chance of exceeding targets with current resources."

Instead of opinions, you bring evidence. Instead of gut feel, you bring data. Instead of guessing, you know.

That's why discrete event simulation matters.

Next Steps


Ready to Master SimPy?

Get started with simulation in Python using SimPy with my comprehensive guide. It covers everything you need to know to build your first simulation models.

Get the SimPy Guide