TerminologyΒΆ
- Graph
- A directed graph. Not actually implemented as an object, but referenced throughout the project as the final construct of a router, nodes, and subscriptions. You can generate an image of the graph using the emit-digraph utility.
- Router
- An object (implemented in emit.router.Router or subclasses) that keeps references to functions and their names and handles dispatch. It generally knows where everything is and where it’s going.
- Node
- A function or callable class that receives messages, processes them in its own way, and passes them on down the graph. In this sense, this output could be called a “stream”.
- Subscription/Route
- An edge in the graph. It is directed, and so only flows one way. Circular subscriptions can be created (by two nodes subscribing to each other’s streams), but they have a high probability of creating an infinite loop and so should be used carefully. Subscriptions also can exist as a special case for an entry point to the graph.