Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Apr 17 20:40
    Aaronontheweb commented #4943
  • Apr 17 20:40
    Aaronontheweb commented #4943
  • Apr 17 20:40
    Aaronontheweb auto_merge_enabled #4943
  • Apr 17 20:39
    Aaronontheweb ready_for_review #4943
  • Apr 17 20:39
    Aaronontheweb edited #4943
  • Apr 17 20:39
    Aaronontheweb synchronize #4943
  • Apr 17 20:39
    Aaronontheweb ready_for_review #4944
  • Apr 17 20:39
    Aaronontheweb synchronize #4944
  • Apr 17 20:39
    Aaronontheweb synchronize #4943
  • Apr 17 19:49

    Aaronontheweb on dev

    harden Akka.DependencyInjection… (compare)

  • Apr 17 19:49
    Aaronontheweb closed #4945
  • Apr 17 19:44
    Aaronontheweb auto_merge_enabled #4945
  • Apr 17 19:44
    Aaronontheweb opened #4945
  • Apr 17 19:44
    Aaronontheweb labeled #4945
  • Apr 17 19:44
    Aaronontheweb labeled #4945
  • Apr 17 19:44
    Aaronontheweb labeled #4945
  • Apr 17 19:40
    Aaronontheweb commented #4944
  • Apr 17 19:39
    Aaronontheweb labeled #4944
  • Apr 17 19:39
    Aaronontheweb labeled #4944
  • Apr 17 19:39
    Aaronontheweb opened #4944
Bartosz Sypytkowski
@Horusiath
@DamianReeves you roles are fixed at cluster startup, you cannot change them when the system is running
Arjen Smits
@Danthar
@verilocation you can specify the global ask timeout in your hocon config.
Aaron Stannard
@Aaronontheweb
@mmisztal1980 you'd want to use a Docker network
and using something like Docker Swarm or Mesos or etc, pull the addresses of other registered containers on that network acting like seeds
I've been using good old-fashioned Docker links to do that too
which isn't great for production stuff IMHO
fine for testing
Docker network is a NAT that can span multiple Docker Machines
so that's how you get containers on different boxes talking to each other
whereas a link, I think can span the network but it's a point-to-pint descriptor you have to pass in when launching the image
@Danthar lol yes... there are a bunch that need that
the design patterns one too
@raskolnikoov > is it possible to schedule the actorsystem scheduler to call an actor at random times every day?
hmmm....
not by default
but what you could do: send a message to an actor at fixed intervals and have the actor randomly decide whether to handle it or not
achieves the same thing, but backwards - you could put the "randomizer" in as a kind of facade actor
and have the randomizer, when it chooses to accept the message, pass the message along to the real actor downstream
Aaron Stannard
@Aaronontheweb
other possibility is instead of using "tell repeatedly"
you could just generate a random schedule of single "tell once" calls to the actor
and do that once a day or something
you can also use the IScheduler.Advanced to call a method
and use a RNG in there to determine whether or not to send a message to an actor
any one of those would work
Arjen Smits
@Danthar
Comparison between akka.net and orleans (high level) and an intro to akka.net and actors (in dutch) https://channel9.msdn.com/events/TechDays/Techdays-2016-The-Netherlands/All-Actor-Model-frameworks-are-not-created-equally
Arsene Tochemey Gandote
@Tochemey
Hello Gentlemen I would like to know where can I get a good tutorial on akka F# because I have started learning F# and there is a project on the pipeline for me to do in F#.
Wuttipat
@PlanCZero
Hi.
Anyone know how to do that in c#?
Maciek Misztal
@mmisztal1980
aight, I'm setting up a vagrant/saltstack driven environment - I'll probably go for docker swarm - seems easier to setup then dcos - less resource consuming
Peter Bergman
@peter-bannerflow
Trying out the AwaitAssertfunctionality in TestKit, having a bit of trouble undestanding if I am using it right. The strange thing is that when I run just one single test using AwaitAssertthe test passes, however, if I run that test with multiple other tests (like in a suite) the test fails after the specified duration. Nothing is shared between tests and I am using Akka.TestKit.Xunit2
With nothing shared between tests, I mean that the actor under test is re-created in each test
Vagif Abilov
@object
@Tochemey look at Akka.NET Bootcamp F# projects (fsharp branch at GitHub).
Arsene Tochemey Gandote
@Tochemey
@object Thank you very much
@object Please do you know any good F# automatic import tools for VS2015? I have installed F# Power Tools but It could not auto-import my Akka stuff. Thanks
Vagif Abilov
@object
What do you mean by F# automatic import? Import of what?
Arsene Tochemey Gandote
@Tochemey
Tools like Resharper for F#
Vagif Abilov
@object
Resharper is not an import tool. It's a productivity tool. If you use Visual Studio Code, then Ionide is a great editor. http://ionide.io/
Arsene Tochemey Gandote
@Tochemey
@object Thank you Broz
Vagif Abilov
@object
NP
Vagif Abilov
@object

I have a question about running Akka streams in transactional manner, when success or failure can trigger some acknowedgement process. Let's say I have a simple stream:

        var source = Source.From(Enumerable.Range(1, 10));
        var flow = Flow.FromFunction(new Func<int, int>(x =>
        {
            if (x == 5)
                throw new ArgumentException();
            return x*2;
        })).WithAttributes(ActorAttributes.CreateSupervisionStrategy(Deciders.ResumingDecider));
        var writeSink = Sink.ForEach<int>(Console.WriteLine);
        var runnable = source.Via(flow).To(writeSink);
        runnable.Run(materializer);

As you can see, when the flow encounters an element 5, it will raise an exception. How can this exception trigger some negative acknowledgemen (i.e. nack a queue message with certain tag)? And if the message flow through the whole stream, how can messaging processing completing trigger a positive acknowledgement? Of course I would like to run such acknowledgement outside individual stream elements.

Arsene Tochemey Gandote
@Tochemey
@object I have installed the ionide plugin in VSCode. However I cannot figure out how to get an F# project template files as we have it in VS. Any idea?
Vagif Abilov
@object
@Tochemey I have no idea. I've never used Ionide to create F# projects.
You can probably use Yeoman for this purpose: https://github.com/fsprojects/generator-fsharp
Bartosz Sypytkowski
@Horusiath
@object if the message will cause an exception at some stage, that exception will be passed further using OnError semantics - you can intercept them by i.e. using Recover* extension methods. However if you need to ack/nack messages back to source, there are few different options for that. I think, that the most stream-idiomatic is to use BidiFlows: they can be used to create a duplex request-response stream. For example, on the JVM a whole akka-http module is based on bidi flows.
Vagif Abilov
@object
Thanks @Horusiath. I assume that with BidiFlow I send ack/nack in the opposite direction so there will be a dedicated flow/sink dealing with acks. But how will it get the ack value? Will I need to set up a broadcast from the source that forwards ack information to the ack handler?
Bartosz Sypytkowski
@Horusiath
@object this can work like that:
+--------+               +----------+               +--------+
|        | ~(messages)~> |          | ~(messages)~> |        |
| Source |               | BidiFlow |               |  Sink  |
| (Flow) |               |          |               | (Flow) |
|        | <~(ack/nack)~ |          | <~(ack/nack)~ |        |
+--------+               +----------+               +--------+
Vagif Abilov
@object
@Horusiath great, thanks!
Bartosz Sypytkowski
@Horusiath
other version is to pass contextual message from one stage to another. So i.e: you can have message with Commit() \ Abort() method, that will callback the source. Once error was catched, abort immediatelly, if message has been passed to the sink, commit it.
(ofc you cannot send message across machine boundaries then - or you need to implement Commit/Abort in terms of akka transport)