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.3.tar.gz (253.2 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.3-cp313-cp313-win_amd64.whl (244.4 kB view details)

Uploaded CPython 3.13Windows x86-64

disco_engine-0.0.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (260.3 kB view details)

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

disco_engine-0.0.3-cp313-cp313-macosx_11_0_arm64.whl (237.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

disco_engine-0.0.3-cp313-cp313-macosx_10_15_x86_64.whl (248.1 kB view details)

Uploaded CPython 3.13macOS 10.15+ x86-64

disco_engine-0.0.3-cp312-cp312-win_amd64.whl (244.4 kB view details)

Uploaded CPython 3.12Windows x86-64

disco_engine-0.0.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (260.3 kB view details)

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

disco_engine-0.0.3-cp312-cp312-macosx_11_0_arm64.whl (237.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

disco_engine-0.0.3-cp312-cp312-macosx_10_15_x86_64.whl (248.0 kB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

disco_engine-0.0.3-cp311-cp311-win_amd64.whl (243.9 kB view details)

Uploaded CPython 3.11Windows x86-64

disco_engine-0.0.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (260.4 kB view details)

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

disco_engine-0.0.3-cp311-cp311-macosx_11_0_arm64.whl (236.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

disco_engine-0.0.3-cp311-cp311-macosx_10_15_x86_64.whl (247.0 kB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: disco_engine-0.0.3.tar.gz
  • Upload date:
  • Size: 253.2 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.3.tar.gz
Algorithm Hash digest
SHA256 c656acb56fd6461b19afa9ae81519c9d0629f2beb7d53480270f48dd0671e206
MD5 bab9b8804eacc1a9f843d20c24421dc3
BLAKE2b-256 127aac6ad4e2a7cfd67200fc1837ba6002dd98854001cde3bc1988ad3cfe4d31

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 81a4f2df151118ebde0804e6bd1c273d8e1ef8e9d1c31aca1f93e189a50e366a
MD5 05774de24656dbd5622ee398e2420802
BLAKE2b-256 8fcac367539096c07a23fc7f922afab29b3e68a5b7211dbc3ef57770c499f5bd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 373c9b587e5fdce451b40b21faba6cbe2ff1a47ac35e4ef51feb32ebbd868058
MD5 aff7c1fe6bef01b2487da076876390a8
BLAKE2b-256 7252c8450efce18e656deda5e502e567b101e6e041c7c1c93157917191275aac

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f48fdfe7cd25c5cf80bb061c3cd016a537db31a4dffe468ca30d00a7576f826a
MD5 0d23264a7e19ccab4ca357a9c46d31d5
BLAKE2b-256 f986dec5818f8c6172bd6595e17c60fb4d03b110b4bc678362be249dd359bee6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.3-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 c683a243a9e098c862b69f20e57fa0e873861afa8319fb225c45fcc0e11fb50e
MD5 33b91bba6008dc123dae6d847ab7aa8a
BLAKE2b-256 fbaade28e8ca51463bbb02c0e8a0e0c76683648e07954e634d12922b3fecaeb7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 97d5d8ec5ead79ac6727784c56dc518b3ae6fc209798dfa6e18816961372e98e
MD5 8b8e67e7cc672ff29b10afa7bc0f0858
BLAKE2b-256 436de51a18325725298675ce438f2e34504baf8ea4ac388d2309df678ad29d0b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2a83ccde245613cfeefa61e1af52c3883f30838b151ff3a61a62c30084f696aa
MD5 7d1efe1eca0491edae2e5949f5b7f393
BLAKE2b-256 e151b97b156a634370614ef45f57712ad7acd77141e72504f29084d53643f665

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fcfb3aafc0ccc6e8937bbc3b72899b5408f392e61f59040b9439ebddc38e9b25
MD5 535ffb3f1d2b514cbd765b9fd2f8dd1e
BLAKE2b-256 9c7ec87c3d6423f6342b6c7f22fe5aaab6b582d3305570e09e4bd202d81319d4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.3-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 ec0a8b12b2e79a7ecf3c010c2b60d4dd87002cafbeab0ea082e91b82894a80cb
MD5 0f032718d6d2a69fa5ac29fbab439b3d
BLAKE2b-256 dbda8fa258bbbce06d7b25e521b02b47909b27166559b7d4b3552d150ea4b246

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5465537cc8698b1ffaa3f7fe10aeee97d7c61bbd0be3cd45c095c85a67126448
MD5 4e6b27bb65afa962baeb1355e46d0700
BLAKE2b-256 73f3941ce509738bc2c97ce93a4413a59a70015e2937a474f566b57eb3952267

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fcf112d7f5d53b7a0e6e8c9036f8cf5ede864b94077a1b0eb3bf803e0e83add2
MD5 bc46318e11ac4fef29e50e199786e295
BLAKE2b-256 55896214a9e50f9698e5d4c1f9826746ad4f33333f9bee53b91c95cb3c81ac77

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1c535f70cdd2507f516b64a415cc5af3c494329befba489a68ae98be39c57c1a
MD5 bbb16f10b3615c1924bbc2b9d187c7a3
BLAKE2b-256 61f85bfb3d39602efbc0ef6f0e4cfbb1d7b32c85c57c59bdd39a659a1b5f0f36

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for disco_engine-0.0.3-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 d3c33f2bd20c265632f696753cc6f6af5b0063e1695166e42dab71594a0aca65
MD5 e5e017d861c9d7a22c447539ff16434c
BLAKE2b-256 58d524d55a1cbfc9dbcfa676cbb9fa1dadb779ef532e01c53efdbf6b645d0691

See more details on using hashes here.

Provenance

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