Live data from Hacker News

Actor system for the JVM developed by Electronic Arts

orbit.cloud

11–20 of 95 posts

Re: Actor system for the JVM developed by Electronic Arts

#11

Does anyone know how it compares to Akka?

At a glance:

Sending a message is simply a function call. Whereas in Akka it's the ask pattern where you have to manually reify the function call parameters into a case class.

If you want to wait in processing a message in Akka, you either have to juggle the message queue with stashing or block a thread. In Orbit it is a `suspend` fun.

Re: Actor system for the JVM developed by Electronic Arts

#13
post #10

“Exactly one” is a hard concept to get right. How do they ensure that exactly one instance of an actor is alive at once, without sacrificing latency of actor start and/or while tolerating network partitions?

https://proto.actor/docs/cluster-partitions/#multiple-activa...

> This can be prevented by persisting state in a database with some form of CAS operations, e.g. Couchbase.

Re: Actor system for the JVM developed by Electronic Arts

#15

> Orbit is a framework to write distributed systems using virtual actors on the JVM. A virtual actor is an object that interacts with the world using asynchronous messages. Could anybody elaborate on this? How does an actor differ from an object that uses promises to talk to a server?

A promise is a specific class of an actor - https://en.wikipedia.org/wiki/Futures_and_promises#Semantics...

Re: Actor system for the JVM developed by Electronic Arts

#16

> Orbit is a framework to write distributed systems using virtual actors on the JVM. A virtual actor is an object that interacts with the world using asynchronous messages. Could anybody elaborate on this? How does an actor differ from an object that uses promises to talk to a server?

This is based on a popular and fundamental computer science paradigm. If you're not familiar with it, it's a good read.

https://en.wikipedia.org/wiki/Actor_model

Re: Actor system for the JVM developed by Electronic Arts

#19

Does anyone know how it compares to Akka?

At a glance: Sending a message is simply a function call. Whereas in Akka it's the ask pattern where you have to manually reify the function call parameters into a case class. If you want to wait in processing a message in Akka, you either have to juggle the message queue with stashing or block a thread. In Orbit it is a `suspend` fun.

It's an interesting idea; not having to stash messages in the actor implementation when doing an async call. I did a little experiment what that could look like using Akka and kotlin suspend functions https://github.com/joost-de-vries/akka-kotlin
Post reply on HN