Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
closes #1168
supercedes #1339
After discussion in the canberra office we decided this was the direction we want to take the shotover topology configuration.
The change
Configs like this:
becomes:
The root level chains are now part of the source configuration.
alternative approach
In the draft PR #1339 I proposed this:
This is actually a lot clearer to read for simple cases.
Its very clear that RedisSource flows into RedisSinkSingle and we have reduced the rightwards drift.
In order to allow this sources are now a subtype of transform called source transforms that must come at the start of the chain.
This is similar to how transforms can be terminating or non-terminating and a transform chain must end in a terminating transform.
So it feels worth the complexity of intermingling transforms/sources to get this clean configuration.
However as soon as we consider subchains the semantics become strange.
In root level chains we must start with a source while in a subchain we must never start with a source.
I considered this complexity to push past the point of being worth it and so I abandoned that approach in favor of this PR.
Naming
Previously the source and root level chain were each given their own name.
Now the chain name is derived from the source name since its 1-1.
This does leave the naming a little wonky but will be refined in #337 and #1324
Other Notes
I've left a TODO in the TLS error handling to keep scope of this PR down, pulling on that string will yield many other issues.