Why aeron-ipc not an option for remoting transport?

Hello there, i’m writing micro services and want to use Aeron IPC as transport for remoting.
But it seems aeron-udp is the only whay to go…
Please guide me how to configure aeron-ipc (if it possible).
Or maybe you can explain why this future it’s not supported.

So you are running all Akka nodes on the same host and want to take advantage better performance from ipc? I’d suggest that you first try with aeron-upd and see if that isn’t good enough. Compared with serialization and other things it might not matter much.

We haven’t tried with ipc. I don’t know if there are any important differences that we need to take into account. You could give it a try and if it works well it could be become a contribution to Akka.

Here are a things you need to change:

I’m also want to simplify configuration (i thought there is no need to configure host and port for ipc).
Or host and port should be used any way - for creating unique actors uri?

Want to obtain remote actor like this:
ActorSelection selection = context.actorSelection(“akka://actorSystemName@/user/actorName”);

PS: how to deal with a multiple instances of one service (actor) in this case?

There must be some identifier of the ActorSystem, and that is currently host:port.
So even if they are not used by the underlying transport there must probably be some “fake” port, otherwise it would be too much changes in Akka.

Hello, i have tried replace upd -> ipc in ArteryAeronUdpTransport.scala but somethings goes wrong.
Node reading her self handshake requests:

[hakka-akka.remote.default-remote-dispatcher-10] [InboundHandshake$$anon$2(akka://hakka)] Dropping Handshake Request from [akka://hakka@] addressed to unknown local address [akka://hakka@]. Local address is [akka://hakka@].

Each destination must probably have its own unique Aeron streamId. The streamId numbers are defined here https://github.com/akka/akka/blob/bb622e639b0c4b75f0b4e1a9768d57fbae38ddc0/akka-remote/src/main/scala/akka/remote/artery/ArteryTransport.scala#L970

Each node should define some offset, and those numbers should be added to the offset when creating the AeronSource and AeronSink. Easiest would probably be to use the configured port as this offset.