4 ms·
Currently using, and would use again: Orleans on .NET Core. Orleans is a virtual actor framework, similar to Akka in Scala. For anyone unfamiliar, it's basica
by lwansbrough 9y ago
Currently using, and would use again: Orleans on .NET Core.
Orleans is a virtual actor framework, similar to Akka in Scala.
For anyone unfamiliar, it's basically distributed OOP built into the runtime. You instantiate a User class, and that class instance will exist somewhere in your cluster, but you can access it like a regular class anywhere in code. You could then have a Company class on another node in the cluster, and they can interface seamlessly with each other without any networking code -- just as if they were running on the same machine. Adding capacity is as simple as spinning up more app servers, and because of the way Orleans handles state and garbage collection, you've basically got a distributed cache of all your recently accessed objects, so next time you access them there may not be a need to query the database.
- bargl 9y agoDid you look into Akka.NET? If so why'd you pick Orleans instead? I had a similar use case and just want another opinion.
- lwansbrough 9y agoYou might find this helpful: https://github.com/akka/akka-meta/blob/master/ComparisonWithOrleans.md https://github.com/akka/akka-meta/blob/master/ComparisonWith... Personally, our use cases were highly applicable to the use cases for which Orleans has been battle tested. Orleans also makes a lot of promises around availability and fault tolerance, which are really important for such a system. On the surface, Orleans seems a lot easier to use and abstracts away a lot of the complexity of building a distributed system.