To offer a slightly dissenting opinion, we’ve had many issues with Akka over the years: - if you roll your cluster membership a lot the dotted version vectors which are created by Akka distributed data grow unbounded. Eventually they will start making gossip messages exceed the default maximum size (a few kB IIRC) and fail to send. - in the presence of heavy GC Akka cluster has a really bad time. Members will flip fl…
Regarding garbage collection: do you think ZGC or Shenandoah could reduce the problems you mentioned?
How Akka Cluster Works: Actors Living in a Cluster
61–65 of 65 posts
Re: How Akka Cluster Works: Actors Living in a Cluster
#62Earlier quoted context omitted.
I mean, you are right that Akka Cluster is JVM based and hence can bring the problems you mentioned. But then again, most high frequency trading also runs on the JVM, so it can often be worked around. > If this happens frequently enough (to affect say 5% of your users – enough to kill your game experience), is the benefits of latency gain from in-memory object reads wiped out? For this specific use-case, I don't thin…
> But then again, most high frequency trading also runs on the JVM, so it can often be worked around. JVM is an awesome piece of technology. And you can do robotic control systems to high-frequency trading systems with it with careful programming. But I've seen a lot of Java code running in production suffering from latency jitters and needing continuous profiling and optimization by a small group of performance engi…
Re: How Akka Cluster Works: Actors Living in a Cluster
#63Earlier quoted context omitted.
> But then again, most high frequency trading also runs on the JVM, so it can often be worked around. JVM is an awesome piece of technology. And you can do robotic control systems to high-frequency trading systems with it with careful programming. But I've seen a lot of Java code running in production suffering from latency jitters and needing continuous profiling and optimization by a small group of performance engi…
Doesn't it have the new GC's that are supposed to be minimal pause and gamechangers?
At the same time, I think (while not being an expert) that in the majority of the cases, the GC will not be a problem and that the time you can save from using Akka Cluster allows you to optimize your system more than enough to make up for any GC latency problems, in almost every system.
The only technology that might be better/comparable here is the erlang VM, but I have never used it myself.
Re: How Akka Cluster Works: Actors Living in a Cluster
#64Earlier quoted context omitted.
I used Cluster Singleton with much success, starting at the very beginning of 2016: https://github.com/artsy/atomic-store/
Are you still using Akka these days?
Nope. The two companies I have since worked have mature products that aren't built on the JVM or Scala. But I'd absolutely consider it if I were to build a system with similar constraints again.
There was a big learning curve, but the end result was a system that was built largely correctly, on a tight timeline, solving some tricky technical and business challenges.
Re: How Akka Cluster Works: Actors Living in a Cluster
#65Earlier quoted context omitted.
You're not just talking online games, you're talking enormous-world MMOs, and that's such a far cry from the areas that I have worked with and thought about how to work with in any detail that I can't usefully add anything. If you're trying to manage the concurrent state of 10s of thousands of players in a game, all server-side, and you want specific actors to handle that single player and you don't want a globally p…
Interesting! Not trying to divert from Akka which is a wonderful piece of engineering, but your comment reminded me of Microsoft’s take at the Actor model with Project Orléans - which was used for the backend side of the Halo / XBox MMO [0]. I think the GA version of Project Orléans is now called Service Fabric, although I never had the pleasure to try it. [0] https://youtu.be/I91ZU8tEJkU
Service Fabric has something called Reliable Actors which are heavily inspired by Orleans.
Source: I'm the project lead for Orleans