The part where the execution graph is "linked" at runtime into an actor graph. It's hard to reason about because it's flexible enough to enable large numbers of possible combinations.
I'm not saying it's bad, but I am saying that the flexibility limits the ability to reason about actor interactions (especially concurrent interactions), which makes it akin to the dynamic vs static type system debates. One is strictly more flexible than the other, and that necessarily makes it harder to reason about.
Actor systems can be racy and so to reason about them you may need to consider things like the order messages are delivered - which you can't always do.
Comments
What part of actors are hard to reason about?
The part where the execution graph is "linked" at runtime into an actor graph. It's hard to reason about because it's flexible enough to enable large numbers of possible combinations.
I'm not saying it's bad, but I am saying that the flexibility limits the ability to reason about actor interactions (especially concurrent interactions), which makes it akin to the dynamic vs static type system debates. One is strictly more flexible than the other, and that necessarily makes it harder to reason about.
Cool, yeah I see what you're saying - thanks.
Actor systems can be racy and so to reason about them you may need to consider things like the order messages are delivered - which you can't always do.