Crate orchestra

source ·
Expand description

§Orchestra

orchestra provides a global information flow system in reference to system specifc process tokens. The token is arbitrary, but is used to notify all Subsystems of what is relevant and what is not, leading to a so called view of active tokens.

An orchestra is something that allows spawning/stopping and orchestrating asynchronous tasks as well as establishing a well-defined and easy to use protocol that the tasks can use to communicate with each other. It is desired that this protocol is the only way tasks - called Subsystems in the orchestra scope - communicate with each other, but that is not enforced and is the responsibility of the developer.

The Orchestra is instantiated with a pre-defined set of Subsystems that share the same behavior from Orchestra’s point of view.

                             +-----------------------------+
                             |         Orchesta            |
                             +-----------------------------+

            ................|  Orchestra "holds" these and uses |.............
            .                  them to (re)start things                      .
            .                                                                .
            .  +-------------------+                +---------------------+  .
            .  |   Subsystem1      |                |   Subsystem2        |  .
            .  +-------------------+                +---------------------+  .
            .           |                                       |            .
            ..................................................................
                        |                                       |
                      start()                                 start()
                        |                                       |
                        V                                       V
            ..................| Orchestra "runs" these |......................
            .                                                                .
            .  +--------------------+               +---------------------+  .
            .  | SubsystemInstance1 | <-- bidir --> | SubsystemInstance2  |  .
            .  +--------------------+               +---------------------+  .
            .                                                                .
            ..................................................................

Structs§

Enums§

  • A message type that a subsystem receives from an orchestra. It wraps signals from an orchestra and messages that are circulating between subsystems.
  • An error type that describes faults that may happen
  • A type of messages that are sent from a Subsystem to the declared orchestra.

Traits§

Functions§

Type Aliases§

Attribute Macros§