Replies: 1 comment
-
Thank you so much for this thoughtful post! This conversation isn't limited to Python: it's relevant for OOP languages in general. Since we're writing SDKs in other OOP languages (Java is in progress and C# will eventually happen), we should have a broader discussion about SDK ergonomics in traditionally OOP languages. We might take a while before replying with something definitive since we need to have a deep, forward-looking discussion about this |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hello everyone! I did a bit of experimenting with inngest via python sdk and the value the product provides is fantastic!
(Context: I have an ML/DS/AI background and I see a lot of potential here for orchestrating realtime/HITL AI pipelines with your app).
But when implementing functions to be orchestrated by inngest in python, I have a feeling that I write a JS code.
In the text below I'd like to share my personal opinion, why I feel that way, and what I implemented on top of your sdk to enhance my DX:
step.run
. While I'd be happy to just cally=f(x)
.@client.create_function
decorated flow inside.This makes my code feel cluttered and harder to navigate than I'm used to. That's why I followed a pretty standard pattern in modern ML sdk's (pytorch model definition, huggingface model defition) and built a POC base class to build pipelines on.
And then my flow (Inngest function) definition becomes very short and clear by subclassing a base helper class.
This allows me to define statically all tasks that I need beforehand and keep the flow execution function clean - which is perfect for me.
This of course comes with some cons like:
But they are perfectly fine for me: The first constraint is good for building reliable real-time inference DAGs, and if I need to reuse something, I can always create util operators and components.
Would love to know your thoughts on such approach and whether it is possible to see it being natively supported by sdk!
Beta Was this translation helpful? Give feedback.
All reactions