Live data from Hacker News

On the future of Akka and Lightbend

discuss.lightbend.com

21–30 of 50 posts

Re: On the future of Akka and Lightbend

#21
post #16

Earlier quoted context omitted.

Doesn't .NET now have a very similar core library anyway?

Only thing I can think of is the Task Parallel Library but I’m not sure how that compares to Actors.

Not at all, what I know. well it runs stuff in parallel but i believe thats where the similarities end.

Re: On the future of Akka and Lightbend

#22
post #10

Earlier quoted context omitted.

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 i…

Please take a look on Proto.Actor (C# version). Very elegant and lightweight solution.

The version for go is awesome.

Re: On the future of Akka and Lightbend

#23

Has anyone had great success with akka? It seems like it could definitely solve some problems elegantly. My team has had trouble with maintainability due to complexity (not clear if that's inherent in akka or just with how we implemented it). It can be somewhat managed by senior engineers but has seemed to be difficult for junior engineers to effectively maintain akka code.

i’ve seen at least two cloud services using akka for a component that required long-lived stateful connection management. while i think both ended up being successful because of akka, it required retrofitting a lot of libraries that already existed to fit the actor paradigm, as well as requiring at least one person who really understood akka.

id also say some decisions around akka monitoring and how that has related to lightbends monetization makes it more difficult than it should be to build observability around the internals of akka, ex. emitting metrics on actor queue depth.

Re: On the future of Akka and Lightbend

#24
post #10

Earlier quoted context omitted.

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 i…

Doesn't .NET now have a very similar core library anyway?

You might be thinking of Orleans, but it's not exactly core.

Re: On the future of Akka and Lightbend

#25
post #21
post #16

Earlier quoted context omitted.

Only thing I can think of is the Task Parallel Library but I’m not sure how that compares to Actors.

Not at all, what I know. well it runs stuff in parallel but i believe thats where the similarities end.

That jogged my memory; what I was thinking of was TPL Dataflow. 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.

Re: On the future of Akka and Lightbend

#26

Earlier quoted context omitted.

Doesn't .NET now have a very similar core library anyway?

You might be thinking of Orleans, but it's not exactly core.

Besides Orleans there is also the Service Fabric SDK and now also Dapr

Re: On the future of Akka and Lightbend

#27

Earlier quoted context omitted.

Doesn't .NET now have a very similar core library anyway?

You might be thinking of Orleans, but it's not exactly core.

We use Orleans on my team and it has been 99% worth it. The 1% is mostly problems due to bad configuration, easily remedied.

Re: On the future of Akka and Lightbend

#29

Has anyone had great success with akka? It seems like it could definitely solve some problems elegantly. My team has had trouble with maintainability due to complexity (not clear if that's inherent in akka or just with how we implemented it). It can be somewhat managed by senior engineers but has seemed to be difficult for junior engineers to effectively maintain akka code.

My team had migrated about 35 codebases from a mix of Play, Scalatra, Ruby, and Python, to Akka HTTP. The unification definitely made it easier for juniors to start work on unfamiliar codebases, but the same could be said if we unified on something else. That being said, a portion of the services did make use of Akka streams & actors and we’ve found a lot of success there that otherwise would’ve been complex code with locks or synchronized blocks. Stuff that I’d rather not have to onboard engineers with or review their PRs and miss an unlock(). It’s probably a steeper learning curve by teaching them about actors and futures, but it means they’ll be writing safer code by design, and reviewing their PRs becomes easier for me.

Just make sure the actors are small and have one focus. When they get too large and do too much is when they become unwieldy and difficult to maintain.

Re: On the future of Akka and Lightbend

#30
post #4

Earlier quoted context omitted.

Same story with Lightbends Play Framework. Using it from Java is abysmal.

Using anything build in Scala from Java is abysmal. Have fun with no default parameters, creating Seq$.MODULE$ everywhere etc. I'm not from US, so I've never have seen so much dollars anywhere.

I agree, it is a mess.

I had a little success by simplifying the interop layer. If you can wrap your scala code in simple classes that expose only Java-compatible structure, then you can remove additional complexity of java into scala interop.

Post reply on HN