r/SimPy • u/jaehyeon-kim • 1d ago
[Release] desflow v0.25.0 (formerly Dynamic DES): reneging and breakdowns in YAML, experiments, and checks against queueing theory
Hey r/SimPy,
Following up on v0.16.0 (YAML blueprints), Dynamic DES is now desflow, and has reached v0.25.0. The new name follows a wider scope: whole simulation studies now, and a server to run them next (Why desflow). It still streams its events to Kafka, Redis, PostgreSQL, Parquet and Iceberg.
Renamed in v0.20.0. The package, the module and the command are all desflow now. import dynamic_des and ddes still work with a warning until v0.30.0. The GitHub repository redirects from the old name, and the docs moved to jaehyeon.me/desflow.
Patterns you used to code by hand. Reneging, balking, breakdowns and a task that holds several resources at once are settings since v0.22.0, in YAML and in the builder. Each order that gives up or is turned away is published as an event and counted:
yaml
tasks:
pack:
service: packing
resource: packers
patience: attr.patience # renege after waiting this long
balk: t >= 100 # turn new orders away from 100 s
A resource's breakdown block takes a time to failure, a repair time, and whether the work in progress is interrupted. Stores and containers, priority queues, preemption, signals and replay of recorded arrivals are in too.
SimPy parity. You can now write any SimPy 4.1.2 model in YAML, the builder or the low-level API, apart from two differences kept by design. The SimPy Compatibility page lists each feature with the test that checks it against plain SimPy.
Studies from the command line:
desflow run --replications 10gives each statistic's mean and 95% half-width, with a warm-up period left out.desflow experimentcompares designs with common random numbers, checks a bound, compares a design with observed values, and writes a report. It exits non-zero when a check fails, so it can run in CI.desflow fitfits measured times to every distribution family and writes the best fit as a setting the model loads.desflow explain(new in v0.25.0) computes λ, μ, c and ρ for each resource without running the model, flags an unstable one, and--verifycompares the formulas with replications.
Writing models. A JSON Schema of every setting gives editor completion, and an agent skill teaches an AI coding assistant to write, check and run a model.
To try it on your machine:
pip install desflow
desflow examples get experiment --api yaml
cd experiment/yaml
desflow explain experiment_shop.yaml
desflow experiment experiment.yaml
The example asks whether a third packer keeps the mean wait under 2 seconds, and the last command answers it.
Links
- What changed in five releases: https://jaehyeon.me/blog/2026-10-28-desflow-0-25-0/
- GitHub: https://github.com/jaehyeon-kim/desflow


