graph LR
Simulation_Engine_Orchestrator_["Simulation Engine (Orchestrator)"]
Actor_Builder["Actor Builder"]
Communication_Channel_Manager["Communication Channel Manager"]
Edge_Builder["Edge Builder"]
Process_Starter["Process Starter"]
Metric_Collector_Starter["Metric Collector Starter"]
Simulation_Engine_Orchestrator_ -- "Orchestrates" --> Actor_Builder
Simulation_Engine_Orchestrator_ -- "Orchestrates" --> Communication_Channel_Manager
Simulation_Engine_Orchestrator_ -- "Orchestrates" --> Edge_Builder
Simulation_Engine_Orchestrator_ -- "Orchestrates" --> Process_Starter
Simulation_Engine_Orchestrator_ -- "Orchestrates" --> Metric_Collector_Starter
Actor_Builder -- "Built by" --> Simulation_Engine_Orchestrator_
Communication_Channel_Manager -- "Utilized by" --> Simulation_Engine_Orchestrator_
Edge_Builder -- "Utilized by" --> Simulation_Engine_Orchestrator_
Process_Starter -- "Invoked by" --> Simulation_Engine_Orchestrator_
Metric_Collector_Starter -- "Invoked by" --> Simulation_Engine_Orchestrator_
The Simulation Engine subsystem is the core orchestrator of the simulation, responsible for building, wiring, and starting all simulation actors, managing the simulation clock, and initiating the metric collection process. It drives the overall simulation lifecycle.
The central orchestrator of the simulation, responsible for managing the entire simulation lifecycle. This includes coordinating the building and configuration of all simulation actors, establishing communication channels and network topology, initiating the execution of all simulation processes, and starting the metric collection mechanisms. It acts as the primary entry point for running a simulation.
Related Classes/Methods:
Responsible for instantiating and configuring various simulation actors such as clients, servers, load balancers, and request generators based on the simulation's configuration. It translates configuration details into concrete simulation entities.
Related Classes/Methods:
asyncflow.runtime.simulation_runner.SimulationRunner:_build_clientasyncflow.runtime.simulation_runner.SimulationRunner:_build_load_balancerasyncflow.runtime.simulation_runner.SimulationRunner:_build_serversasyncflow.runtime.simulation_runner.SimulationRunner:_build_rqs_generator
Manages the creation and configuration of inboxes or message queues that facilitate inter-actor communication within the simulated environment, enabling the "Interconnected Components" aspect of the architecture.
Related Classes/Methods:
Establishes the network topology and defines the connections (edges) between different simulation actors, determining how requests and messages flow through the system. This is vital for simulating distributed system interactions.
Related Classes/Methods:
Initiates and manages the execution of all individual simulation processes (e.g., client request generation, server processing, load balancer routing) within the SimPy discrete event simulation environment.
Related Classes/Methods:
Activates and configures the mechanisms responsible for collecting various performance and operational metrics throughout the simulation run, enabling the "Observability" aspect of the architecture.
Related Classes/Methods: