Module reactor

Module reactor 

Source
Expand description

Register interest in events and wake futures when the event occurs

§Reactor

The Reactor stores a register of all the events that are currently being listened for.

This has been designed so that it is completed decoupled from the main Execution Engine logic meaning that you could extract the Reactor to a separate process entirely. By separating this to another process you could update/patch the main EE component and the reactor would store any events that came in and then we could resume jobs despite the core EE component being swapped out. Of course this will require the interface between the EE and Reactor remained consistent.

§Events

An event is defined as an external message coming in notifying the EE that something has occurred. This could be something like:

  • The Bot is locked and unable to make progress
  • An activity response has come in

Structs§

Reactor
The Reactor struct stores event references for the events currently being waited on

Enums§

Event
A sum type/algebraic data type containing all the different types of Event that could occur