Skip to main content

A distributed event simulation core (disco) engine.

Project description

🧾 Disco Engine

Disco Engine is a Python-based distributed discrete-event simulation core (“distributed simulation runtime”). It’s designed to run large, structured simulations (e.g., supply-chain / networked process models) by executing many independent NodeRuntimes that exchange events and promises over pluggable transports.

  • Deterministic single-threaded stepping per worker process
  • Scales out via multiple workers and transport backends
  • Built for “engine + plugins” (models as Python packages)

PyPI License: Apache-2.0 Build Tests


Overview

At a high level, a Disco simulation is:

  • a Layered Graph (scenario) that defines structure and data access,
  • a Model plugin that defines simulation logic,
  • an Experiment that defines parameters and run configuration,
  • one or more Workers that host NodeRuntimes and step the simulation.

For local debugging and unit tests, Disco also includes a lightweight TestRun that executes a single, unpartitioned run without threading, metastore/cluster coordination, or external transports.


✨ Features

  • Worker lifecycle & state machine for long-lived simulation processes
  • Routing + transports (in-process, IPC, gRPC) for node-to-node delivery
  • Partitioning to distribute nodes across workers (production), while keeping deterministic node order per worker
  • TestRun for fast local runs without infrastructure (single-process, in-process transport only)
  • Data logging via an optional DataLogger

🚀 Installation

pip install disco-engine

License

This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

disco_engine-0.0.1rc1.tar.gz (234.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

disco_engine-0.0.1rc1-cp313-cp313-win_amd64.whl (240.0 kB view details)

Uploaded CPython 3.13Windows x86-64

disco_engine-0.0.1rc1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (255.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

disco_engine-0.0.1rc1-cp313-cp313-macosx_11_0_arm64.whl (232.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

disco_engine-0.0.1rc1-cp313-cp313-macosx_10_15_x86_64.whl (243.7 kB view details)

Uploaded CPython 3.13macOS 10.15+ x86-64

disco_engine-0.0.1rc1-cp312-cp312-win_amd64.whl (240.0 kB view details)

Uploaded CPython 3.12Windows x86-64

disco_engine-0.0.1rc1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (255.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

disco_engine-0.0.1rc1-cp312-cp312-macosx_11_0_arm64.whl (232.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

disco_engine-0.0.1rc1-cp312-cp312-macosx_10_15_x86_64.whl (243.6 kB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

disco_engine-0.0.1rc1-cp311-cp311-win_amd64.whl (239.5 kB view details)

Uploaded CPython 3.11Windows x86-64

disco_engine-0.0.1rc1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (256.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

disco_engine-0.0.1rc1-cp311-cp311-macosx_11_0_arm64.whl (232.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

disco_engine-0.0.1rc1-cp311-cp311-macosx_10_15_x86_64.whl (242.6 kB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

File details

Details for the file disco_engine-0.0.1rc1.tar.gz.

File metadata

  • Download URL: disco_engine-0.0.1rc1.tar.gz
  • Upload date:
  • Size: 234.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for disco_engine-0.0.1rc1.tar.gz
Algorithm Hash digest
SHA256 1c9204cb1828a400ca48d4d013f20f57eebc42945f24e8539df42bf427687402
MD5 944beda2e4a4c8918887f654794a46a1
BLAKE2b-256 3dcc84a1d4efada49bc6cb88bcdbebf14de38d9a633a3aea580e12560d4e4af7

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1rc1.tar.gz:

Publisher: release-publish.yml on michielmj/disco-engine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_engine-0.0.1rc1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1rc1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 871100863d976395dd97370cbbc6c7e0db833f32e7953abab40b1f17e071d55e
MD5 a0da98184567820cb64901ab0ef41ec8
BLAKE2b-256 3205edcc0ef56637fa981a1ec713c1270182f018cca5c45946a927eb35080d0b

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1rc1-cp313-cp313-win_amd64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_engine-0.0.1rc1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1rc1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5ee53cb84a1bf8c0315456fdba1c462467167225ba08f537ef068514b80fae69
MD5 717cb90b30e5a1f34cbfe6a31937833a
BLAKE2b-256 8c726a43c8909bbae966a933510fe68418793239493478eb73634847d85c99f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1rc1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_engine-0.0.1rc1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1rc1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 40b477f93a1be8cb66f903238367e6c5717bb2949ff14735e36e12ee0a304072
MD5 41c51cb5f27b54a4c1818a646ec9f372
BLAKE2b-256 3f37dd18f985d97387fd22489cc0f5a8395ee8cb26597cd6fe3618884bf19394

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1rc1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_engine-0.0.1rc1-cp313-cp313-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1rc1-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 a1fb32ebb46fe52af9d56b47d469836b30fa70a450cd2fbd675e5a5ddf9df2f0
MD5 b6b182ff809c9405d85cfba9ad50557f
BLAKE2b-256 8c90e53c0e2235decfdfb2adb8b4d875da43eaddb16279613da8c3818b849e2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1rc1-cp313-cp313-macosx_10_15_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_engine-0.0.1rc1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1rc1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1b623406bb315c9c28fe16387ae53df5fb2f092c62dfc3463301a409df579dee
MD5 6b8bd76536941a9aef466d2c57639d96
BLAKE2b-256 0d9d17db21b3a567d323bf60bf342fbd0315b6062f92018d110dd3e9ceada3fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1rc1-cp312-cp312-win_amd64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_engine-0.0.1rc1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1rc1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 30aa62e657f45059989310f457929a75ea957bc0a54beb2f0b053ea55958fbce
MD5 8942b76f0bcb118a134b31d42dd4646b
BLAKE2b-256 c4562f81e3d5900e2a398e9323ae87f37fa6683129429c1efdcc5a342ebb2e22

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1rc1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_engine-0.0.1rc1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1rc1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 60c073589331feb20062e1ee637d9fab1325692b69a3a5cea70027b4b083211b
MD5 4321c3d88b9249ed1982c4bd230e4734
BLAKE2b-256 dfddb7aecb8055293ffd9c7110c7cf746e0b7d0bfd3044134a787a03c5cf7771

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1rc1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_engine-0.0.1rc1-cp312-cp312-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1rc1-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 d5712c17eee9d4f858ed0f54b93f5a658c4bd2a4bb674a53ef17ee9499711cf5
MD5 926de42bccdd126ffbd7f643f43ee4d1
BLAKE2b-256 8f564bee2a2054d54be3ba5603a76098a9e53d27f043a6476029a12e931a29f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1rc1-cp312-cp312-macosx_10_15_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_engine-0.0.1rc1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1rc1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 290aaacba21158bc691284adc7d0ae40adbf5cf090ce9e71e371295474619768
MD5 5e6d5991cee5eee69c9befecd47d6cea
BLAKE2b-256 c27447478383afca49a7f08726bdbc763da8b4be5a427559a78b0d8f6fa3f2c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1rc1-cp311-cp311-win_amd64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_engine-0.0.1rc1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1rc1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 852e5489b7357dc2f47ce33e1ff36f6e0f7dbc034c4ee82f82e67eab5b4b8fb0
MD5 971f74699022aa72fdb7459b1fd627dd
BLAKE2b-256 d09b28eb5acf4e4dec3e920f47af1f1bbe6b072de7a1c6dfc422e7628e0c9ea5

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1rc1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_engine-0.0.1rc1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1rc1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 675b7652dd2dacca2196663b8d360a02a7f932c420fa4759689e3593ebcd2b9c
MD5 373231a74234b1358e95cf44217bb0e9
BLAKE2b-256 75d6e171a513344d851f3a8eb1415ea261b9055de4f4a86087795de11511d135

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1rc1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disco_engine-0.0.1rc1-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.1rc1-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 45cf509966d1674ff7bd1498e639cae69e6b4ecaddca0327ebf3ba59f582692d
MD5 b2b8cb166dac7b08dfd0d18cb73ee785
BLAKE2b-256 5d017abc635cf4b0288e0d50f21edab513a83b308f4dc59152e0ce1ca2e0359a

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.1rc1-cp311-cp311-macosx_10_15_x86_64.whl:

Publisher: release-publish.yml on michielmj/disco-engine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page