[KEP-3] Optional @node decorator to reduce Kedro boilerplate
#5378
Replies: 7 comments 8 replies
-
|
+1 I think it's worth building off the final PoC in #5028 (comment) and/or what another user shared below that. |
Beta Was this translation helpful? Give feedback.
-
|
I personally do not see value in adopting this unless we have conviction in replacing the existing method |
Beta Was this translation helpful? Give feedback.
-
|
+1 Interested in this feature; let’s proceed with a spike |
Beta Was this translation helpful? Give feedback.
-
|
I feel like this adds ambiguity in how to do things and removes clarity & opinion of how to build Kedro pipelines, potentially adding more to the already steep learning curve. I don't want to block any spikes here, so I'll abstain from voting. |
Beta Was this translation helpful? Give feedback.
-
|
I have some reservations about the feature itself. Kedro principles is usually aligned towards simplicity, with small number of parts and very little optionality. We intentionally separate pure functions from pipeline management which I think is one of Kedro's best design decisions. It lets you reuse the same function across pipelines with different inputs/outputs so I'm wondering how the decorator preserves this without making things awkward. |
Beta Was this translation helpful? Give feedback.
-
|
+1 I am up for the spike and POC. I would love to see this design evolve and become the new default. Rationale
Thank you |
Beta Was this translation helpful? Give feedback.
-
|
We are closing this KEP. We have +3 votes and no -1, so we will proceed with the spike in #5360, incorporating the comments raised in the current discussion. Thank you everyone for your participation. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Related issue: #5360
Additional discussion (alternative decorator syntaxes): #5028
KEP shepherd: @DimedS
Q1. What are we trying to do?
Introduce an optional
@nodedecorator that lets users declare Kedro nodes directly on Python functions, reducing the boilerplate of manually wiringNode()andPipeline()for simple cases—while keeping existing APIs fully supported.Q2. What problem is this proposal NOT designed to solve?
node()/Pipeline()APIs.pipeline_registry.pyor enforce auto-discovery for all projects.Q3. How is it done today, and what are the limits of current practice?
Today users typically:
nodes.pyNode(...)objects andPipeline([...])inpipelines.pypipeline_registry.pyThis is explicit and scalable, but can feel heavy for quick iteration and small pipelines, especially for new users coming from scripts/notebooks.
Q4. What is new in your approach and why do you think it will be successful?
Add a decorator-based path as syntactic sugar for common/simple workflows, e.g.:
Kedro can then discover decorated functions and build pipelines automatically (or semi-automatically). This should speed up iteration without taking away the explicit path that teams rely on for larger projects.
Q5. Who cares? If you are successful, what difference will it make?
Q6. What are the risks?
Q7. How long will it take?
Spike / PoC: ~1–2 weeks to prove feasibility and clarify design trade-offs.
Q8. What are the mid-term and final "exams" to check for success?
Mid-term
@nodeand pipeline construction for a simple pipelineFinal
Please vote +1/-1 in comments, not the pool!
Beta Was this translation helpful? Give feedback.
All reactions