# Suggestions for discrete event simulation

**URL:** https://discourse.julialang.org/t/suggestions-for-discrete-event-simulation/63497
**Category:** General Usage
**Created:** [June 24, 2021, 12:46pm UTC](https://discourse.julialang.org/t/suggestions-for-discrete-event-simulation/63497 "2021-06-24T12:46:10Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)
#### Post date: [June 24, 2021, 12:46pm UTC](https://discourse.julialang.org/t/suggestions-for-discrete-event-simulation/63497/1 "2021-06-24T12:46:10Z")

</div>

I’m trying to put together a simple discrete event simulation of a transport network.

You can think of the model as a set of nodes, with shipments between nodes based on random orders coming into each node at each point in time. Each node starts off with a set of containers, and to fulfill an order a container has to be shipped to another node. If no container is available (because more went out then came in over a long period of time), an order goes to a queue until the next container becomes available.

What’s the best framework to express this in? I’m aware of Agents.jl, SimJulia, and DiscreteEvents, but I’m not sure what the pros and cons of these are. Does anyone have experience with any of these packages and could opine on whether they’d be a good fit for the model described above?

---

<div class="post-metadata">

### Author: ![Skoffer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/skoffer/32/378_2.png) [@Skoffer](https://discourse.julialang.org/u/Skoffer)
#### Post date: [June 24, 2021, 5:27pm UTC](https://discourse.julialang.org/t/suggestions-for-discrete-event-simulation/63497/2 "2021-06-24T17:27:32Z")

</div>

I do not know about other frameworks, but definitely can recommend Agents.jl. This framework is very fast, flexible, has really great documentation with [numerous examples](https://juliadynamics.github.io/Agents.jl/dev/examples/) and can be easily with LightGraphs.jl ([here](https://juliadynamics.github.io/Agents.jl/dev/examples/schoolyard/) and [here](https://juliadynamics.github.io/Agents.jl/dev/examples/sir/)) which looks important in your usecase. My experience with this package was nothing but positive.

---

<div class="post-metadata">

### Author: ![js135005](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/js135005/32/8219_2.png) [@js135005](https://discourse.julialang.org/u/js135005)
#### Post date: [June 24, 2021, 10:45pm UTC](https://discourse.julialang.org/t/suggestions-for-discrete-event-simulation/63497/3 "2021-06-24T22:45:25Z")

</div>

I haven’t actually used it but SimJulia.jl looked pretty reasonable to me. I have used other non-Julia simulation languages like SIMSCRIPT, Simula, ASPOL, and C-Sim in the distant past.
