-
Notifications
You must be signed in to change notification settings - Fork 517
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
Proposal: Actors Quickstart #775
Comments
There is a related ask for an Actors "starter" and we can consider one after this feature gets some steam. |
May I suggest why this DAPR Actor would be used on what is now becoming a crowded field in Virtual Actors. I started with ServiceFabric (where is that now???), and a few others. I now know that NewOrleans is in .Net7, so why not use that? I know that DAPR is an abstraction layer, but I have long learned via WCF that being everything to everyone is a failing value proposition - and we got stuck with REST - no data or service contract other than HTTP verbs and a crappy serialization format called JSON. Highest level of abstraction is one that does nothing! |
Hi @codeputer, this issue is not the place to discuss your questions, however:
Dapr actors are available for Python, Javascript, Golang, PHP, Dotnet and Java, giving a consistent actor programming model experience to both dotnet and non-dotnet developers.
Dapr actors are in fact not an abstraction layer, but its own programming model exposed via strongly typed SDKs.
Users using Dapr actors do not need to deal with REST or HTTP at all. As a semi-related side note, most Dapr SDKs use gRPC under the hood. |
Hi @paulyuk, please add me to the fork you're planning to create as you mentioned on Discord. I'm most comfortable with C# and JavaScript, but I should be able to figure out Java and Python as well. |
Hi @marcduiker - will do - I would like to get a bit more community feedback and approvals from maintainers too before we get too far down implementation. Will keep you in loop! |
I wonder if there's too much going on in the smart smoke detector quickstart to where it might distract from the value prop of actors. It's also not immediately obvious to me why you'd use an actor and not an API + database for this scenario. Yes, actors give you concurrency control for free but is it really solving a critical problem in this example, is it? I wonder if there's a simpler example that could be used. What about an actor that counts votes? The example I have in mind is that I have a voting app where users can submit votes on some topic/question, and I deploy an actor that keeps a running tally. A web frontend can periodically query the actor state to get the current tally. Concurrency in cases like this makes a huge difference, which helps readers understand why they should consider actors. The example is also something that anyone can understand (you don't need to know anything about smart devices or IoT). Thoughts? |
I have the same feedback as Chris, that we should keep this understandable. Can we simplify the IoT scenario?
|
Updated to simplify based on feedback from @cgillum and @msfussell . I still prefer this device example over voting, because I would still imagine voting being better handled or handled well by plain old HTTP or pubsub. |
@paulyuk - Approved |
Hey @marcduiker I created this fork/branch and added you as a collaborator. |
New feature merged with #804. Done! |
I propose we have a new quickstart for Actors that does something cool in five mins, but also drives home some concepts of actors like: many stateful objects at once, autonomous behavior, timers and reminders, actors that can notify others, aggregates.
The theme in mind here is IoT twins for "Smart" smoke detectors. This would show off these features or concepts:
The quickstart will meet all the usual requirements:
SDK implementation status.
@dapr/maintainers-dapr @greenie-msft @msfussell
@marcduiker (from Discord), I'd love to collab.
The text was updated successfully, but these errors were encountered: