These are chat archives for akkadotnet/akka.net

26th
Feb 2018
Ulimo
@Ulimo
Feb 26 2018 12:01
Hi! Would Akka remote work to communicate between a DMZ and a intranet? I would like the intranet to open a socket to the DMZ, but the DMZ can then use the socket to send events to the intranet?
Or would even clusterclient work? Meaning I have a cluster in the DMZ but the intranet can open a clusterclient to the DMZ
Bartosz Sypytkowski
@Horusiath
Feb 26 2018 14:10
@Ulimo akka remote uses standard TCP (+ optionally TLS) communication channels
same concerns a cluster client. The only limitation is that communication between two nodes is always direct - this means that corresponding ip/ports needs to be opened between them.
Aaron Stannard
@Aaronontheweb
Feb 26 2018 14:49
@mebymyself I tweeted about this on the official Akka.NET twitter account last week
your bug is you upgraded to DotNetty v0.4.7
which has a regression in the way it handles frame-length encoding
need to roll back to DotNetty v0.4.6, which is what Akka.Remote targets
Aaron Stannard
@Aaronontheweb
Feb 26 2018 14:55
that must have been frustrating; sorry about that. We'll be upgrading to DotNetty v0.5.0 when that comes out.
which will fix the original issue and should contain other new fixes as well
jalchr
@jalchr
Feb 26 2018 15:02
Any plans for using gRPC instead of DotNetty ?
Aaron Stannard
@Aaronontheweb
Feb 26 2018 15:03
you could always create a gRPC transport
but no, no plans
we're actively discussing doing some new stuff around the System.IO.Pipelines
jalchr
@jalchr
Feb 26 2018 15:04
Any preference or relevance of any specific library ?
Aaron Stannard
@Aaronontheweb
Feb 26 2018 15:04
but realistically, to get the most value out of that other third party libraries we depend on like Google.Protobuf will need to adopt Span and some of the other technology bits
and that may take a couple of years
much like the .NET Standard and .NET Core stuff has
the biggest bottleneck in Akka.Remote is our serialization layer - the same thing that makes it extensible and configurable makes it difficult to be as performant
can't really take that away since thousands of users depend on it
but the hope is now that there's agreement via Microsoft's own libraries on how to do things like buffer pooling
that we can keep the configurability and get some of the performance back
Aaron Stannard
@Aaronontheweb
Feb 26 2018 15:29
@ondrejpialek I believe you just need to have the props available locally on each node that can host it
shouldn't need to be serializable
since there aren't any remote deployments as far as I know
that sound right @Horusiath ?
Bartosz Sypytkowski
@Horusiath
Feb 26 2018 15:39
@Aaronontheweb @ondrejpialek right. NONE of the modern akka features relies on remote deployment - AFAIK remote deployment is perceived by Lightbend as dead end and - hopefully - will be discontinued in the future.
Aaron Stannard
@Aaronontheweb
Feb 26 2018 15:40
I personally think remote deployment is cool but have to admit, I don't need to use it very often
Bartosz Sypytkowski
@Horusiath
Feb 26 2018 15:43
IMO if it was correlated with hot assembly loading, it would be super. But since it's not, it mostly puts a complexity for a limited capabilities.
Aaron Stannard
@Aaronontheweb
Feb 26 2018 15:49
yeah, bummer the CLR's type safety mechanisms work against us big time there
hot-loading code into a service that runs for prolonged periods of time without restarting is a recipe for disaster eventually if you can't unload any of the unused code
even in Erlang they have restrictions on what you can and can't rewrite at runtime
i.e. the signatures on the methods have to be binary compatible
since it swaps out the new code at the end of a tail-recursion call