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.7.tar.gz (604.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.7-cp313-cp313-win_amd64.whl (255.6 kB view details)

Uploaded CPython 3.13Windows x86-64

disco_engine-0.0.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (271.6 kB view details)

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

disco_engine-0.0.7-cp313-cp313-macosx_11_0_arm64.whl (248.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

disco_engine-0.0.7-cp313-cp313-macosx_10_15_x86_64.whl (259.3 kB view details)

Uploaded CPython 3.13macOS 10.15+ x86-64

disco_engine-0.0.7-cp312-cp312-win_amd64.whl (255.6 kB view details)

Uploaded CPython 3.12Windows x86-64

disco_engine-0.0.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (271.7 kB view details)

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

disco_engine-0.0.7-cp312-cp312-macosx_11_0_arm64.whl (248.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

disco_engine-0.0.7-cp312-cp312-macosx_10_15_x86_64.whl (259.3 kB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

disco_engine-0.0.7-cp311-cp311-win_amd64.whl (255.0 kB view details)

Uploaded CPython 3.11Windows x86-64

disco_engine-0.0.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (271.5 kB view details)

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

disco_engine-0.0.7-cp311-cp311-macosx_11_0_arm64.whl (248.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

disco_engine-0.0.7-cp311-cp311-macosx_10_15_x86_64.whl (258.2 kB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

File details

Details for the file disco_engine-0.0.7.tar.gz.

File metadata

  • Download URL: disco_engine-0.0.7.tar.gz
  • Upload date:
  • Size: 604.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for disco_engine-0.0.7.tar.gz
Algorithm Hash digest
SHA256 157561a1a03ce5499109007ca8cb160f3efd14591974a2afa587846b1c34b6dd
MD5 c052f0ba391c6fadb50f0848bf507f28
BLAKE2b-256 2428ce62fd09d96be46a557709be589d611a1a3e658a45dc1b84cf139772710c

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.7.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.7-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d542fa654434c09721019b03856eb61868e8337ae713d41c725c8554190b1848
MD5 10fd47a93169617244c11aed84b8012b
BLAKE2b-256 951972d601ea81bcf0bdda93aeea9ab739b6781c7292fa374f062c8b986333a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.7-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.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9e267dae0fb8dda85b003f04b82b0d36118fbdedb15b0460e2d146f97c87923c
MD5 f2a57b0c69b53888a52550c74403bad3
BLAKE2b-256 5e8c73924bfcfc647f681b2ea5491c77936a60e4afa9e04b67ee2add34ffb899

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.7-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.7-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 167679375ffcea4ad48c9558adf1881bfef90371d2c70ae5f2a43677e364e2cd
MD5 7341a894744cc9fa5d671d7982fe1ef8
BLAKE2b-256 2cceaa4bdd36ef15f3083bea6dc7fae1f03fd5c7132e59981993b34d49725d6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.7-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.7-cp313-cp313-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.7-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 2484bd7a1d7218fd6b4a971d07f77da112c9c1a536fe2730e7bc15e03b4e56e0
MD5 6f057c9cf57f96417f23b49bfea6b873
BLAKE2b-256 ce8963adc9ca13db259bd01f2ae445665ef7a1007d78cef7433aa4db9508b415

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.7-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.7-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2032b1a6815b2c72e22a25c174e38897d30f4a584ce9f1a0b1cfb9a9fe5401bf
MD5 818904c761393a2d4ad278e805bebc26
BLAKE2b-256 f869774aa5eb1eea92cb570b6c28c3cb9c907c7b66b8b3e347ba5272ad11afb0

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.7-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.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ec864637dbd452d305516b828d3545c0aa534a38d135305d67d54bf1c0dd665f
MD5 6bc6bde49124f1b3e447c2eaa154bb49
BLAKE2b-256 4958236613d6380bac2103556a3b13feef432d2a0808be7b725e47508fc0b79d

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.7-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.7-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 701c4822aea9920be4078c7868f8c119ca847ea35a61f4d16c07d1f615a3f343
MD5 a1a15eef12a07bb046b60f5ba72cecae
BLAKE2b-256 2ce485ff6fbca4bd0086e457a807b2608150457d4ab308ee329928386cb160a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.7-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.7-cp312-cp312-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.7-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 9a633ae493165108780599fe697620087a5783ffeac6251e6dced692f9227d26
MD5 25ab684bb4c7596a680dc414b38a6f12
BLAKE2b-256 f20dab5373954e3fac660621a3f6a69dc3a4d2f442254226c527d7de3df22311

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.7-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.7-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 77a5ff3d827dc8dfabd9c1041a466c1c58f4bbdf7637f42351b19cd7600566ee
MD5 2a87c81ae54c1e9759037908a7005f09
BLAKE2b-256 c8d7b1110b7ecb2d02d6db77f826b7a260ee2de682e46f0f1571de6934608e92

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.7-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.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 89714c0203bbd4619aac71deaf53bb8a5817d83a2d410c10b4cf53d2ea1cc283
MD5 1e2fc07116f796c5952e1a023091716a
BLAKE2b-256 4ab21971add0c7c76bcf8b3afad3c4bf7d97401f7389fef1a4cc542959266922

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.7-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.7-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 182fae9503b00f018d162520ecaa1a4dd76b43dc6b1358861be05f287a03b66a
MD5 4989e5b99a4a2061c5337a228c87b657
BLAKE2b-256 c34e7165712275e3b3472910a011571b967e3b1aa5095b5e5b47d5cf6edb2248

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.7-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.7-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for disco_engine-0.0.7-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 324eb3bb99825aaf2f0b869a7148f007adfaa8263ab1d789b2ba4ccef4a2ac46
MD5 637edbcce2892e9dab323094f9dd68af
BLAKE2b-256 924ef98150f4f4459d7114f5b49a58ed742ccacba5c19c2d544d683e85f693e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for disco_engine-0.0.7-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