Appendix A. Diagramming Reactive systems

The central aspect of designing Reactive systems is considering the message flows that occur within them. This appendix establishes a graphical notation that is used to depict message flows throughout the book.

In table A.1, a number (like 1 or 2) always represents an ordering constraint: if a component does something in response to an incoming event with number N, then the number on the outgoing event(s) must be greater than N. These usually are not single natural numbers but a variant of vector clocks.

Table A.1. Message-flow diagram components

Description

Diagram representation

Primordial component—A component that was created before the depicted message flow starts.
Transient component—A component that is created (and usually also destroyed) after the depicted message flow starts.
Primordial creation—A parent–child relationship. The component on the left initiates the creation of the component on the right.
Creation with supervision—A parent–child relationship with supervision. In addition to the above, the child component’s failures are handled by the parent.
Creation during the flow—A parent–child relationship that begins with the creation of the child during the processing flow of the diagram (may be combined with supervision, as well, by adding the S).
Termination command—A termination command to a component, usually sent by its parent.
Message—A message sent from the component on the left to the component on the right. There are several variants of this where only the central piece is depicted in the following rows, but the arrows are implied for all of them.
Message description—A message dispatch that is annotated with a description of the message’s contents. This variant is available for all kinds of message depictions shown in the following rows.
Reference inclusion—A message that includes the address of a component. The sender of this message must be in possession of this address when this message is sent.
Causality tracking number—A message with its causality tracking number.
Recurring message—A recurring message send that begins at the indicated number.
Scheduled message—A message that is entered into the scheduler at number 1 and scheduled to be sent at number 2. The second number must always be greater than the first.
Termination notification—A message generated by the system to inform a component that another component has terminated (or is declared as such, in the case of a network partition).
Sequence of messages—A sequence of multiple messages sent one after the other, summarized with the same number.
Failure notification—A failure message sent from a component to its supervisor.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.223.108.105