This PR adds up_chain_protocol and down_chain_protocol implementations for every transform, and then removes the default implementation for these methods, making them mandatory.
I renamed some of the variants since looking at them with fresh eyes today I can see some issues:
Sink -> Terminating - A terminating transform is one that does not send messages down chain, while a sink is a transform that sends messages to a DB. A sink is always terminating but a terminating transform is not always a sink. So this should have been called terminating.
SameAsIncoming -> SameAsUpChain - UpChain used to be called Incoming and I missed this when renaming everything.
This PR adds up_chain_protocol and down_chain_protocol implementations for every transform, and then removes the default implementation for these methods, making them mandatory.
I renamed some of the variants since looking at them with fresh eyes today I can see some issues:
Sink
->Terminating
- A terminating transform is one that does not send messages down chain, while a sink is a transform that sends messages to a DB. A sink is always terminating but a terminating transform is not always a sink. So this should have been called terminating.SameAsIncoming
->SameAsUpChain
- UpChain used to be called Incoming and I missed this when renaming everything.