Sequence
Sequence has three parts for the Spec:
Steps
which defines the in-order list ofSubscriber
s, aka, which functions are executed in the listed order. These are specified using themessaging.v1.SubscriberSpec
just like you would when creatingSubscription
. Each step should beAddressable
.Reply
(Optional) Reference to where the results of the final step in the sequence are sent to.
Sequence Status
Sequence has four parts for the Status:
- Conditions which detail the overall Status of the Sequence object
- ChannelStatuses which convey the Status of underlying
Channel
resources that are created as part of this Sequence. It is an array and each Status corresponds to the Step number, so the first entry in the array is the Status of the before the first Step. - SubscriptionStatuses which convey the Status of underlying
Subscription
resources that are created as part of this Sequence. It is an array and each Status corresponds to the Step number, so the first entry in the array is theSubscription
which is created to wire the first channel to the first step in theSteps
array.
Examples
We also use a very simple transformer which performs very trivial transformation of the incoming events to demonstrate they have passed through each stage.
For the first example, we’ll use a 3 Step Sequence
that is wired directly into the PingSource
. Each of the steps simply tacks on “- Handled by “, for example the first Step in the Sequence
will take the incoming message and append “- Handled by 0” to the incoming message.
Sequence with reply (last Step produces output)
The only difference is that we’ll use the field to wire the output of the last Step to an event display pod.
For the next example, we’ll use the same 3 Step Sequence
that is wired directly into the PingSource
. Each of the steps simply tacks on “- Handled by “, for example the first Step in the Sequence
will take the incoming message and append “- Handled by 0” to the incoming message.
Using Sequence with Broker/Trigger model
You can also create a Trigger which targets Sequence
. This time we’ll wire PingSource
to send events to a Broker
and then we’ll have the Sequence
emit the resulting Events back into the Broker so that the results of the Sequence
can be observed by other s.