You peeps are right - I should have been less snarky.
Having worked with projects like celery I at first was enamored by the relative simplicity of getting a job queue going, but it traps you into celery which is just python or whatever language happens to create a celery compatible message structure (it’s amqp for most shops I’ve worked with).
Thing is in distributed systems it’s annoying when all the different systems have to pepper celery as a layer of your understanding. I found that systems like Argo workflows/events did an awesome job of keeping the message agnostic to anything (even Argo) such that writing the code was boring (the good kind). At the end you’re not even thinking about pubsub or anything other than either what you log out or write to a file. Either of those is fine.
How those different services connect or scale is irrelevant to your service (that’s for another layer handled by your Argo manifests) and it’s contextually liberating.
I am probably not being fair to this project, I just dislike making my software be someone else’s implicitly - there are places that would consider themselves x (celery in my case) shops because of the investment not only in the invasive code presence that is commanded by the library but the necessary mental model. I felt like while it is an investment to learn Argo - the code structure and mindset is pretty portable.
Having worked with projects like celery I at first was enamored by the relative simplicity of getting a job queue going, but it traps you into celery which is just python or whatever language happens to create a celery compatible message structure (it’s amqp for most shops I’ve worked with).
Thing is in distributed systems it’s annoying when all the different systems have to pepper celery as a layer of your understanding. I found that systems like Argo workflows/events did an awesome job of keeping the message agnostic to anything (even Argo) such that writing the code was boring (the good kind). At the end you’re not even thinking about pubsub or anything other than either what you log out or write to a file. Either of those is fine.
How those different services connect or scale is irrelevant to your service (that’s for another layer handled by your Argo manifests) and it’s contextually liberating.
I am probably not being fair to this project, I just dislike making my software be someone else’s implicitly - there are places that would consider themselves x (celery in my case) shops because of the investment not only in the invasive code presence that is commanded by the library but the necessary mental model. I felt like while it is an investment to learn Argo - the code structure and mindset is pretty portable.