6 ms·
I've now worked for about six months on a Akka.NET codebase. I find it a very elegant high-performance framework that gives you a lot of flexibility in how you
by lvice 5y ago
I've now worked for about six months on a Akka.NET codebase.
I find it a very elegant high-performance framework that gives you a lot of flexibility in how you want to solve a wide range problems.
This being said, I've been burned already several times by the complexity and its raw power. The codebase tends to become verbose and difficult to navigate (everything being an ActorRef). Debugging is difficult and coding is challenging for junior engineers, as you said. I found it very unforgiving to mistakes, and it's easy to shoot yourself in the foot if you use the abstractions without knowing very well what's going on under the hood. Edge cases can be very tricky to manage.
I'm still very conflicted about it. One one side the services powered by Akka are quite stable and performant, but I'm not sure the complexity justifies the means.
- emodendroket 5y agoDoesn't .NET now have a very similar core library anyway?
- vips7L 5y agoOnly thing I can think of is the Task Parallel Library but I’m not sure how that compares to Actors.
- aliswe 5y agoNot at all, what I know. well it runs stuff in parallel but i believe thats where the similarities end.
- emodendroket 5y agoThat jogged my memory; what I was thinking of was TPL Dataflow. https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/dataflow-task-parallel-library https://docs.microsoft.com/en-us/dotnet/standard/parallel-pr... > The Task Parallel Library (TPL) provides dataflow components to help increase the robustness of concurrency-enabled applications. These dataflow components are collectively referred to as the TPL Dataflow Library. This dataflow model promotes actor-based programming by providing in-process message passing for coarse-grained dataflow and pipelining tasks. The dataflow components build on the types and scheduling infrastructure of the TPL and integrate with the C#, Visual Basic, and F# language support for asynchronous programming.
- aliswe 5y agoI stand corrected! Thank you!
- nickkell 5y agoYou might be thinking of Orleans, but it's not exactly core.
- CuriousSkeptic 5y agoBesides Orleans there is also the Service Fabric SDK and now also Dapr
- guhidalg 5y agoWe use Orleans on my team and it has been 99% worth it. The 1% is mostly problems due to bad configuration, easily remedied.
- nickkell 5y agoI'm glad to hear that somebody's using it in the wild. It was rejected at my place of work in favour of a BPMN-driven process engine. The thinking was that it's too difficult otherwise for business-people to understand the process. Does your company write about its experiences?
- NicoJuicy 5y agoAlso https://getakka.net/ https://getakka.net/ , but haven't used it myself
- superfist 5y agoPlease take a look on Proto.Actor (C# version). Very elegant and lightweight solution.
- rad_gruchalski 5y agoThe version for go is awesome.