Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 18:02
    IgorFedchenko closed #4738
  • 18:02
    IgorFedchenko commented #4738
  • 17:39

    Aaronontheweb on 1.4.16

    (compare)

  • 17:38

    Aaronontheweb on master

    Added v1.4.16 placeholder for n… typo (#4734) Allow different versions of MS … and 2 more (compare)

  • 17:38
    Aaronontheweb closed #4741
  • 17:26
    Aaronontheweb opened #4741
  • 17:25

    Aaronontheweb on 1.4.16

    (compare)

  • 17:25

    Aaronontheweb on dev

    Added v1.4.16 release notes (#4… (compare)

  • 17:25
    Aaronontheweb closed #4740
  • 17:21
    Aaronontheweb opened #4740
  • 17:21

    Aaronontheweb on 1.4.16

    Added v1.4.16 release notes ##… (compare)

  • 17:15
    dependabot-preview[bot] synchronize #4612
  • 17:15
    dependabot-preview[bot] synchronize #4718
  • 17:15

    dependabot-preview[bot] on nuget

    Bump System.Configuration.Confi… (compare)

  • 17:15

    dependabot-preview[bot] on nuget

    Bump NUnit from 3.7.1 to 3.13.0… (compare)

  • 17:15
    dependabot-preview[bot] edited #4718
  • 17:15
    dependabot-preview[bot] edited #4612
  • 17:14
    dependabot-preview[bot] edited #4718
  • 17:14
    dependabot-preview[bot] edited #4612
  • 17:13
    Aaronontheweb milestoned #4739
Aaron Stannard
@Aaronontheweb
and implement something custom where each send operation to each recipient is atomic
and any subsequent sends get queued up until the current send is ACKed
and then you can proceed from there
in a happy-path scenario the performance is probably OK
once you actually start dealing with prolonged trouble on the network though then that technique is going to result in back-ups quickly
especially if you end up with a poisoned message
I'm working on some finance applications at the moment; real-time price analysis, trading indicators, and eventually an execution engine
In the spec design I have currently we only use something stronger than at most once delivery inside the execution engine
if I miss some real-time order book events from the exchanges I'm connected to
¯_(ツ)_/¯
however, if my ability to process those real-time order book events is slow
then my application can't really do its job properly
Aaron Stannard
@Aaronontheweb
we will use the stronger delivery guarantee in the execution engine though
because my view of an account balance and the exchange's view of the account balance have to be identical
otherwise the trading algorithms are going to try to execute trades that can't be filled or might otherwise blow away the liquidity (cash-on-hand) parameters the users set... which would be bad
AnchishkinAlex
@AnchishkinAlex
hi! I have a problem: there are two independent projects and I am using Akka Remoting for connection. I am also using Autofac DI.
Two projects. Two actor systems. Two Autofac DI containers.
Actor of the first ActorSystem calls actor of the second ActorSystem which should have constructor injection.
But the first actor system doesn't know (and shouldn't know) about this dependencies.
Is it possible to call this actor after resolving dependency through the second actor system?
Aaron Stannard
@Aaronontheweb
@AnchishkinAlex are you remotely deploying those actors?
if not, then none of this stuff matters - both actors are started independently
and neither needs to know about each other's constructor arguments
they just need to acquire a remote actor reference to each other
which you can via an ActorSelection initially
AnchishkinAlex
@AnchishkinAlex
Ok, we tried to use ActorSelection but it needs hardcode address of actor.
Is it possible to get address of actor from HOCON?
Aaron Stannard
@Aaronontheweb
yep, you can create a custom HOCON field
to store the address a remote node
I do this inside the client-server app from our Akka.NET trainings
let me see if I can grab it...
akkatime{
             sessions{
              handshake-timeout = 4.0s #max time to complete the handshake timeout process
              verify-timeout = 1.0s #max time to authentication an end-user locally on the server
              verify-chat = on
             }
             server = "akka.tcp://akkatime@127.0.0.1:14445"
          }

          akka {
the akkatime section is custom
and I have a akkatime.server property that the client reads from configuration in order to figure out how to contact the server
var actorSystem = ActorSystemRefs.AkkaTimeSystem = ActorSystem.Create("akkatime");
            var serverAddress = ActorSystemRefs.ServerAddress = Address.Parse(actorSystem.Settings.Config.GetString("akkatime.server"));
            var serverStatus =ActorSystemRefs.ServerConnectivityActor =
                actorSystem.ActorOf(
                    Props.Create(() => new ServerConnectivityStatusActor((Address)serverAddress.Clone(), ServerConnectivityStatus.Disconnected)),
                    ActorPaths.ServerConnectivity.Name);
which I then read in here when I'm starting my ActorSystem
and that serverAddress gets passed to an actor that uses an ActorSelection to contact another actor on the server
AnchishkinAlex
@AnchishkinAlex
Thank you. Could you provide link to this example? I'll explain it
explore*
Aaron Stannard
@Aaronontheweb
wish I could, but it's part of the training materials we distribute to our customers
that being said, we do have all of these ones
the WebCrawler one for Akka.Cluster is probably the most relevant there
AnchishkinAlex
@AnchishkinAlex
Thanks! I saw Akka.NET Bootcamp, Chat Server Example but not this samples :smile:
Aaron Stannard
@Aaronontheweb
you're welcome!
AnchishkinAlex
@AnchishkinAlex
And I know about your post "When I should use Actor Selection?". Is this situation relevant, isn't it?
Aaron Stannard
@Aaronontheweb
yes it is
generally, IActorRef is going to be both more performant and flexible at run-time
since it has the benefit of location transparency and doesn't need to be "resolved"
but ActorSelection is ideal in situations where you don't have a reference to an actor yet but still need to contact it
and you know roughly where it is in the hierarchy
most people build their actor hierarchies top-down
where the top level actors filter messages down to their children and so forth
so by convention, most developers treat their top level actors like "public APIs"