-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
An "actor model" eh? #18
Comments
I've noticed many opinionated pronouncements about what does and does not constitute a true actor model:
After digging it seems to me that the theoretical core of an "actor model" is mostly well defined however in practise what does constitute being an actor model or system is somewhat flexible and less-stringent then many of the personal opinions on it (which seem to weigh one particular implementation or framework more when really the whole model is conceptual and implementation details are expected to vary). Some resources to back this up include:
The main distinguishing theoretical features of what constitutes adhering to the model seems to be rooted in 2 main concepts:
|
Another blog with some interesting posts: |
Notes on how CSP vs. Actor systems mostly has to do with asynchronous-ness and naming: |
As a reminder to self, I would like to have a "formal stuff" spiel in the docs going over the comparison and supposed incompatibilities of One of the key points I'd like to make is just because we aren't enforcing "everything is an actor" (especially where it makes no sense) it doesn't mean you can't classify the system as actor based because, really each process running a Some TODO:
|
Some further inside from an existing systems perspective:
|
rando link from @salotz on The wide world of almost-actors: comparing the Pony to BEAM languages: |
cute summary: https://gist.github.com/rbishop/9082539 |
I think it's important to note (from the video) that messages have:
The atmost once could be pretty complex to implement as it's easier to sent messages multiple times than atmost once - because then you could loose/drop messages |
this is incompatible with TCP
this is incompatible with the notion of UND in real systems
Also incompat with TCP retransmission afaik. I'm not sure any of those are strict requirements. |
The rant task is codified in #210. |
This is a discussion thread to dig into the theory surrounding how this project is (like) an actor model system and how it is or isn't compatible with structured concurrency.
BEFORE YOU THINK OR READ ANYTHING ELSE.
Watch this vid by the original author of the theory if you think you know what an actor model is or does, or looks like:
https://www.youtube.com/watch?v=7erJ1DV_Tlo
Hint: it's a computational model not an API.
A bunch of stuff that should probably be referenced in the docs and aluded to more formally in the implementation (if that's what we're after?):
Reference implementations in other languages and frameworks:
The text was updated successfully, but these errors were encountered: