Let’s consider how a Monty-based project might be able to use a sensorimotor approach to characterizing and/or optimizing its own behavior, as:
Hand with Reflecting Sphere, also known as Self-Portrait in Spherical Mirror, is a lithograph by Dutch artist M. C. Escher, first printed in January 1935. The piece depicts a hand holding a reflective sphere. In the reflection, most of the room around Escher can be seen, and the hand holding the sphere is revealed to be Escher’s.
The basic notion here is that the project would dynamically collect data on actor behavior, message traffic, operating system and/or virtual machine impact, etc. Then, to bring in the motor aspect, it would take actions (e.g., adding tasks and/or resources) that perturb the system state.
Assume that an Elixir-based instance of Monty is able to access various data sources, e.g.:
- traces from message-handling code, modules, etc.
- reports from OpenTelemetry, Telemetry, etc.
By controlling the message traffic from these sensors, it could adjust the workload. Then, using dynamic control of tools such as poolboy, it could add or remove processing modules. In sum, it could explore, characterize, and optimize Monty’s dynamic behavior.
