Live data from Hacker News

.NET Orleans

dotnet.github.io

61–70 of 287 posts

Re: .NET Orleans

#61

I'm a core developer on Orleans. Feel free to ask any questions here, or on gitter: https://gitter.im/dotnet/orleans I gave a talk recently on how we use it at Microsoft: https://www.youtube.com/watch?v=KhgYlvGLv9c - the talk is very short and so it does not go into many details, but it gives an overview of some internal use cases.

Why is it called orleans?

Possibly they preferred a city named "new "? Maybe they didn't like NET York..

Re: .NET Orleans

#63
post #38

Earlier quoted context omitted.

Academically (And, to some extent, practically speaking) Orleans Virtual actors aren't the same as Erlang (or Akka) actors. Major differences: - Normal actors are pretty flexible, can work in local or remote contexts. Orleans is probably best described as Sharded Actors, It's a 'guided' implementation of Actors compared to Erlang or Akka where you are given a toolkit and have to build out what you intend to do. - Orl…

> - Orleans doesn't have any ordering guarantees. While this is not a firm requirement of the Actor model itself, both Erlang and Akka guarantee ordering between a given Sender-receiver pair (i.e. messages sent from A to C will be sent in order) I thought Erlang only guaranteed that if the processes are on the same node. Is that not correct?

It’s true even with distribution, see e.g.:

http://erlang.org/faq/academic.html#idp33052176

http://erlang.org/pipermail/erlang-questions/2017-September/...

Re: .NET Orleans

#65
`Orleans builds on the developer productivity of .NET` - could someone familiar with NET development specify what those things might be? I've never used .Net and would love to find out what it does better/worse/different than other frameworks. Thanks!

Re: .NET Orleans

#66
post #4

EA/BioWare created an equivalent for some of their online services on the JVM: https://github.com/orbit/orbit

I wonder, what would it be worth to the world if there were an actor framework for multiple languages that offered interopability between languages? IIRC Akka.net and Akka aren't compatible with each other.

Dapr is designed to offer this afaik (https://github.com/dapr/docs/blob/master/concepts/actors/REA...). It uses GRPC and HTTP to allow clients and services of the virtual actors in various languages (C#, Java etc.) to communicate.

Re: .NET Orleans

#67
I’ll give it three hours before the emperor is found naked, like COM, DCOM, DNA, windows.net, Patterns and Practices, Enterprise Library, Remoting, AppFabric, WCF.

Re: .NET Orleans

#68
post #4

EA/BioWare created an equivalent for some of their online services on the JVM: https://github.com/orbit/orbit

I wonder, what would it be worth to the world if there were an actor framework for multiple languages that offered interopability between languages? IIRC Akka.net and Akka aren't compatible with each other.

wasCC [1] goes in that direction.

It supports all languages that compile to wasm.

Very early stage project, though.

[1] https://wascc.dev/

Re: .NET Orleans

#69
post #58

Earlier quoted context omitted.

I'm also one of the core developers of Orleans. Ironically, I recently joined Temporal. There are definitely some similarities, but also major differences between the models, especially when it comes to the execution model and fault tolerance.

Since you're an expert on both, do you mind discussing which of the two you like better? And the reasons behind it?

After more than a decade of working on Orleans and only three weeks on Temporal it's foolish of me to talk about what I "like better" :-). I'm working on a couple of conference talks to compare the two approaches. In short, Orleans is biased towards quick low latency operations. Longer running workflow style operations are totally doable, but require extra application logic and thinking. Temporal's main abstraction is a workflow. So, it's biased towards reliable execution (with retries if needed) of business processes that may take seconds or days/months. Orleans executes application code within the runtime process. Temporal orchestrates execution of external application workers (processes) I started referring to it as Inversion of Execution. Orleans is .NET. Temporal currently provides Go and Java SDKs. These are just top-level differences that come mind. There are many others. But there are also major similarities.

Re: .NET Orleans

#70
post #43

I'm a core developer on Orleans. Feel free to ask any questions here, or on gitter: https://gitter.im/dotnet/orleans I gave a talk recently on how we use it at Microsoft: https://www.youtube.com/watch?v=KhgYlvGLv9c - the talk is very short and so it does not go into many details, but it gives an overview of some internal use cases.

Maybe I'm looking in all the wrong places, but I'm having a surprisingly hard time finding hardware requirements. I love that with Erlang I can throw an experimental app on Digital Ocean for just $5/mo and see if it gets traction. How much more resource intensive is Orleans and what kind of resource usage should I expect as I scale up the number of actors?

We've seen clusters running on a bunch of Raspberry Pis.
Post reply on HN