-
Notifications
You must be signed in to change notification settings - Fork 205
Project maintanence going forward #887
Comments
I'll throw in Open Collective as an additional source of potential funding. I am a great fan of Onyx and, while I don't have it running in production, would happily contribute my pittance to help keep it live and growing. |
Thanks for raising this, @thenonameguy. We're glad that Onyx has continued to be useful to the community. @lbradstreet and I have two thoughts:
|
Thanks for the response! I think our company would fund some of the proposals that are in your backlog over time. |
Would love to help out. I just need to figure out a way through the red tape at work. |
As much as we'd like to, @lbradstreet and I are booked up on time. That said, we don't feel the need to have complete ownership over the codebase. We're more than happy to have other maintainers take the wheel. The only thing we'd like to avoid is passing it to someone at random (and avoid an event-stream-like situation :) ) |
We @ Oscaro use Onyx in production and would also like to see it continue as we've invested considerable resources into building pipelines and IOs (Google Cloud which we plan to open source). We can chip in but I'll admit that some of the codebase needs some serious documentation and/or more tests as we have noticed things (my colleague here) that really require that @MichaelDrogalis or any of the original authors shed some light on. The lifecycle FSM and some of the trickyness involved can be quite daunting without any annotations. |
@neuromantik33, it's pretty fair to describe the lifecycle FSM as daunting. We only had so much time, and we needed to make performance somewhat comparable to Flink, so I'm afraid some of the readability was sacrificed in favor of performance there. I personally found Aeron pretty reasonable to run reliably, however it was certainly susceptible to GC issues if run in process, and I could see it being pretty easy for the clients timing out themselves when the peers GC. It may be worth starting out by trying to tune the Aeron client and media drivers in a way that would make the behavior more tolerant normal streaming workloads. That said, the aspect of running a separate media driver process and peer-group do make it a little harder to setup for the first time. Ultimately, building a full streaming platform, including plugins, with only a few people is a big job without significant community involvement. I think the important idea is the data driven, flexible DSL. It may be worth investigating whether the DSL aspects could be mapped onto something like Flink, so you can get the benefit of the runtime and community engagement, without the overhead of building all of the aspects of a distributed streaming platform. |
While I certainly like Flink, IMO Onyx shines not only because of its data model but also because of its "just a library" approach. That said, I've been in and out of exploring onyx core and plugins for a few weeks and I would be glad to help people with more experience in the distsys field. |
Unrelated note @neuromantik33 : On the Aeron reliability side it turned that we were hit by a known issue for setting CPU limits in Kubernetes: kubernetes/kubernetes#67577 |
@thenonameguy I don't want to pollute this Issue so I made a new one: #890 I'm curious what reliability issues you saw, we've been fighting aeron exceptions for a few weeks now. |
@arnaudbos In the same vein as @lbradstreet's suggestion, I always thought it would be interesting to map the Onyx information model onto Kafka Streams, since that one truly is just a library. |
@MichaelDrogalis indeed, describing a Kafka Stream topology as an Onyx job would allow to decomplect (sorry) Processor nodes, especially with lifecycles.
Storm has a "tag-aware scheduler" and in Flink, the API provides a way to assign operators to specific slots (I think they're called slots) with specific parallelism.
Onyx and Flink both use ABS for state checkpointing and Flink has implemented user triggered savepoints on top of it.
Does Onyx currently support what Flink calls "End-to-End Exactly-Once Processing"? I think not. Their two-phase commit abstraction is interesting but I'm not sure how it could be mapped to Onyx's masterless design since Flink relies on the Job manager for such purpose.
I think many of us, in the Clojure/Onyx "community", know you have a lot to do at Confluent, so thank you for taking the time to discuss here. Mapping the Onyx information model on top of Flink/Kafka Streams or trying to go forward is a matter of tradeoffs it seems. |
Full disclose before I dig in -- a large part of my current role at Confluent is managing Kafka Streams and KSQL. I do have a mild vested interest when I suggest this idea, though I do think it's a good one anyway. :)
|
To steer the conversation back to the original topic, I think it's important to have at least some high-level maintenance of the project, someone who is able merge PRs, do releases, etcetera. We are still heavy users of Onyx, but had to fork from the mainline Onyx due to the lack of updates (e.g. Clojure 1.10 support, but also other stuff). I would be happy to volunteer picking up day to day operations for the project, to make sure PRs get reviewed, releases can still be pushed out in a timely manner, etc. As both Michael and Lucas know me, it would also avoid event-stream-like situations. |
@solatis I'd be very happy to have @solatis aboard. I can set up full access if @lbradstreet agrees. |
@solatis, that sounds great! I can walk you through the CI and release process some time too. |
Great let’s discuss the logistics over direct message. |
@solatis I have invited you as an owner of the onyx-platform GitHub organization. |
@solatis if you want to explicit any guidelines for opening issues, submitting PRs, which communication channel(s) to use, branching model (, etc.) that would work best for you, please advise. |
@MichaelDrogalis @lbradstreet I think I still need additional instructions / access before I can push a release to Clojars. I see there's quite a bit of magic in a lot of places to make this happen. I'm available over Slack if you want to reach out to me directly. |
Hey @solatis. I've added you to the Clojars org. You should be able to trigger releases now with the release scripts (they're under script/) in each repo. Can still answer any questions as needed though. |
My clojars username is also @solatis . What is the normal release process like? I manually updated relevant files and tagged branches, and it seems like a deploy of 0.14.5 to Clojars did succeed, but CircleCI generated a permission / connection failed error => https://circleci.com/gh/onyx-platform/onyx/6868 It could be an unfortunate network glitch, though. |
Hey @solatis! 👋 |
@thenonameguy are there any specific features you are looking for? I've merged most of the things, and we're using Onyx + clojure 1.10 ourselves without any problems at this point. |
Experience with similar acquihires shows that the project simply dies over the course of few years, regardless of potentially faint reassuring statements being declared early on or not, whereas a new (differently commercial) similar project coming from the acquiring company does not always emerge. It might be good to assume something along these lines, but this is just my small piece of mind when coming here to check on the progress of this framework. |
There seems to be some more energy being invested into wrappers for Beam / Dataflow, which I appreciate, but Onyx is still the best thing I have personally used in this space. |
I've worked with both in clojure so far (beam/dataflow) and onyx. The simplicity to express pipeline in onyx is impressive |
Like Mike said last year(?) or when he and Lucas left, he believes the information model Onyx built was great, and that's what should be persistent. As it stands, those who use Onyx, what would be needed to continue to ensure Onyx maintains a growth and security posture? Extension to other languages? Improved plugins? Improved security posture? What is needed to make this project considered 'active'? |
Hey,
It seems with the recent acquihire of the main developers of Distributed Masonry the project development has slowed down. With the advent of better maintenance options for open-source projects from the Clojure community (Clojurists Together/Patreon) it would make sense to apply to those programs to fund development of Onyx.
We just integrated Onyx in a production system and it would be nice to keep up dev efforts as I think this project is still the de-facto Clojure data processing platform with it's unique approach.
I would like to hear some thoughts from the devs what the future holds for this project realistically and what we can do together to keep it going forward.
@lbradstreet @MichaelDrogalis
The text was updated successfully, but these errors were encountered: