Potentially move away from actix #3962
Replies: 11 comments 7 replies
-
Can you please create a short list of issues caused by actix? I quickly found #2606 and #2178. |
Beta Was this translation helpful? Give feedback.
-
Well, there are a few things:
Thus, I think it will be less of an issue in the future. |
Beta Was this translation helpful? Give feedback.
-
Clarification to avoid confusion: this discussion is about actix the actor framework, not the actix-web http framework. |
Beta Was this translation helpful? Give feedback.
-
Preface: I have experience with concurrent synchronous Rust. I don't have a I think that "managing concurrency in a stateful peer node" is a core competence I also believe that concurrency is hard. It's easy to arrive at "works most of My cursory look at actix actor framework makes me believe that it doesn't tackle The first hard concurrent problem is termination. You want to ask concurrent A similar issue is cancellation. It should be possible to cancel some work, and The second hard problem is backpressure. Actix uses fancy channels for At this point, I am not sure what, exactly is being handled by actix. A Contrast this with a minimal All this being said, I also agree with @frol that a big part of accidental |
Beta Was this translation helpful? Give feedback.
-
Thoughs about
|
Beta Was this translation helpful? Give feedback.
-
I checked solana and polkadot, both of them use tokio directly and no actix. Haven't taken a deeper look on whether and how they handle metrics/mailbox/prioritization/back pressure |
Beta Was this translation helpful? Give feedback.
-
About prioritizationI thought for a while about how we can add prioritization/back pressure. Whenever it's possible to do it on top of It's safe to assume we want to continue using some kind of Each
I wrote a custom To implement prioritization I would do the following, give writing IO the highest priority,
With a careful implementation, we can add a back pressure as well, but that should be a topic for another discussion. |
Beta Was this translation helpful? Give feedback.
-
@pmnoxx my understanding is that this is explicitly not what this discussion is about: #3962 (comment) |
Beta Was this translation helpful? Give feedback.
-
Switching away from Actix in a simple wayIt's safe to assume for now that we will not be able to add Step 1) (For now) Advantages
Neutral
Disadvantages
|
Beta Was this translation helpful? Give feedback.
-
https://uazu.github.io/stakker/d-intro.html (toc in the sidebar) is an interesting read regarding the design of actor systems in Rust. |
Beta Was this translation helpful? Give feedback.
-
I just bumped into an actor framework I haven't seen before: https://github.com/rillrate/meio (the author has also brought Yew frontend framework to life) It claims to have a concept of high-priority tasks, graceful termination on sub-actor and task level. |
Beta Was this translation helpful? Give feedback.
-
We have been using actix for quite some time now, and have encountered several issues during this time period. Recently, after the actix upgrade (#3869), issues like #3925 appear and prompted us to reconsider whether using actix is a good idea after all. I'll attempt to list the advantages and disadvantages below to hopefully provide a holistic view of the situation:
Advantages of keeping actix
Disadvantages of keeping actix
I would love to see whether people think we should keep using actix. @SkidanovAlex @frol @pmnoxx @matklad
Beta Was this translation helpful? Give feedback.
All reactions