Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tremor Deployment Language (Troy) #36

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open

Tremor Deployment Language (Troy) #36

wants to merge 7 commits into from

Conversation

mfelsche
Copy link
Member

@mfelsche mfelsche commented Dec 15, 2020

@mfelsche mfelsche marked this pull request as ready for review December 18, 2020 13:56
@darach darach added open-review This RFC is undergoing open / public review with intent to proceed enhancement New feature or request labels Dec 18, 2020
There are also the following steps:

* Disconnect an artefact instance from all its connections (e.g. disconnect an offramp from its pipelines)
* Destroy an artefact instance and thus stop its operation
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might want to mention that removing instances trickles down (up?) to connected instances for automatic reclemation of resources. And if / how we do that in the future


If no instance id is given, as part of the flow instantiation a new instance of the artefact is created with the flow instance id filled in as instance id. So, users can omit an instance id if they want to have their artefacts be auto-created as part of an event flow.
They will also be auto-deleted upon flow deletion. Our goal with this setup is to make it possible for users to define their tremor setup
as one unit, the `Flow`. It can be instantiated and deleted with one command or API call.
Copy link
Member

@Licenser Licenser Dec 18, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

constistency in casing:

Suggested change
as one unit, the `Flow`. It can be instantiated and deleted with one command or API call.
as one unit, the `flow`. It can be instantiated and deleted with one command or API call.


If the port is ommitted, based on its position a default port is chosen. If a reference is on the LHS the port `out` is chosen, on the RHS `in` is implied. This matches the normal event flow: From the `out` port of an artefact to an `in` port of another one. Other cases need to be handled explicitly.

#### Connect Statement Sugar
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we consider not having to quite the parts in the arrow sytnax? Something like:


# without ports
/source/stdin -> /pipeline/pipe;
/pipeline/pipe/err -> /sink/system::stderr;
# with ports
pipeline/pipe:err -> /sink/my_error_file:in;

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, i think we should discuss a non-stringy representation of TremorURL.

Matthias Wahl added 2 commits January 7, 2021 17:43
Signed-off-by: Matthias Wahl <mwahl@wayfair.com>
Signed-off-by: Matthias Wahl <mwahl@wayfair.com>
Matthias Wahl and others added 3 commits January 7, 2021 17:43
Signed-off-by: Matthias Wahl <mwahl@wayfair.com>
Co-authored-by: Heinz N. Gies <heinz@licenser.net>
Signed-off-by: Matthias Wahl <mwahl@wayfair.com>
Co-authored-by: Heinz N. Gies <heinz@licenser.net>
Signed-off-by: Matthias Wahl <mwahl@wayfair.com>
Signed-off-by: Matthias Wahl <mwahl@wayfair.com>
Signed-off-by: Matthias Wahl <mwahl@wayfair.com>
@Licenser Licenser added this to Triage in RFC Status Jan 20, 2021
@mfelsche
Copy link
Member Author

Idea from random chatting in discord:

  • Remove the distinction between the bindings between pipelines and offramps/onramps and connections inside a pipeline using trickle select statements. The goal here would be to use select statements to connect onramps/offramps transparently the same way we use selects for intra-pipeline dag setup. One possibility is to allow stream references in select statements (the well known in and out) as well as tremor-urls referencing onramps/offramps. This can be implemented as some heavy syntax sugar which desugars to a pipeline definition and the flow that connects the pipeline to all the other artefacts. Unsure how this behaves with connecting multiple pipelines with multiple artefacts.

@Licenser
Copy link
Member

Licenser commented Apr 9, 2021

Interesting thought, one concern I would have is how will that affect clustering. We will want to have some distinction between pipelines as a nonpersistent, semi stateless, nonblocking entity and sources/sinks as a stateful, persistent, potentially blocking entity.

Treating them exactly the same way during configuration time might make it harder for users to understand the implications of a configuration. As it is now (and that clearly isn't ideal 😂) there is an extremely clear distinction between "this interacts with the outside world and will be slow" and "woosh pipeline!!!!" that would get lost if it's all selects

@Licenser Licenser moved this from Triage to Open for review in RFC Status Apr 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request open-review This RFC is undergoing open / public review with intent to proceed
Projects
RFC Status
Open for review
Development

Successfully merging this pull request may close these issues.

None yet

3 participants