4 ms·
Check out https://www.pykka.org/en/latest/ https://www.pykka.org/en/latest/ as well which is based on the actor model. My understanding is that it's used by htt
by anaphor 7y ago
Check out https://www.pykka.org/en/latest/ https://www.pykka.org/en/latest/ as well which is based on the actor model. My understanding is that it's used by https://www.mopidy.com/ https://www.mopidy.com/ and actively developed by them.
- yingw787 7y agoHey thanks for commenting! I checked out pykka in a previous blog post about actor models: https://bytes.yingw787.com/posts/2019/02/02/concurrency_with_python_actor_models/ https://bytes.yingw787.com/posts/2019/02/02/concurrency_with... I did a deep dive on thespian instead, I think it’s used at scale by GoDaddy. One of the issues I ran into with both libraries is that there’s not much of an OTP-like library built on top of them, which makes them difficult for production usage.
- anaphor 7y agoBy "OTP-like" library, do you mean basically supervision trees and things like that? I think one of the issues Pykka (not sure about Thespian) would run into is that they're using python threads as one of the backends, and I can't see how you could implement this safely on top of that.
- yingw787 7y agoYeah, some framework to encourage reactive design patterns. At least for Thespian, it allows you to use different system bases like multiprocTCPBase or multiprocUDPbase to run your actors on, which all inherit from a common systemBase class, so you can swap out your base without changing your user code. It's nice for testing b/c you can explicitly split debugging overhead into different parts based on the systemBase you use. But yeah, one of the difficulties of using these Python concurrency libraries is that the language and runtime don't really help you out. You have to retrofit a lot of your own stuff on the language to enforce certain properties of the model.