Skip to content

v0.1.0

Choose a tag to compare

@jaehyeon-kim jaehyeon-kim released this 22 Mar 07:31
· 42 commits to main since this release
27783b5

Dynamic DES is a high-performance, real-time control plane for SimPy.

It bridges the gap between static discrete-event simulations and the live world by allowing you to update simulation parameters (arrivals, service times, capacities) and stream telemetry and events via Kafka, Redis, or PostgreSQL without stopping the simulation.

Key Features

  • ⚡ Real-Time Control: Synchronize SimPy with the system clock using DynamicRealtimeEnvironment.
  • 🔗 Dynamic Registry: Dynamic, path-based updates (e.g., Line_A.arrival.rate) that trigger instant logic changes.
  • 🚀 High Throughput: Optimized to handle high throughput using orjson and local batching.
  • 🔋 Flexible Resources: DynamicResource provides prioritized queuing with graceful capacity shrinking.
  • 🔌 Modular Connectors: Plugin-based architecture for Kafka, Redis, Postgres and Local testing.
  • 📊 System Observability: Built-in lag monitoring to track simulation drift from real-world time, exposed via the telemetry stream.

📚 Quick Start

Install the engine with Kafka and Dashboard support:

pip install dynamic-des[kafka,dashboard]

Run the full Real-Time Digital Twin stack:

# Start Kafka cluster (requires Docker)
ddes-kafka-infra-up

# Run the simulation (new terminal)
# Ctrl + C to stop
ddes-kafka-example

# Start the dashboard (new terminal)
# Opens in browser at http://localhost:8080
# Ctrl + C to stop
ddes-kafka-dashboard

# Clean up the infrastructure
ddes-kafka-infra-down

Check the documentation for setup guides, API references, and architecture details.