Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 00:47
    Aaronontheweb commented #4948
  • 00:45
    Aaronontheweb assigned #4948
  • 00:45
    Aaronontheweb synchronize #4946
  • 00:45
    Aaronontheweb labeled #4948
  • 00:45
    Aaronontheweb labeled #4948
  • 00:45
    Aaronontheweb opened #4948
  • 00:45
    Aaronontheweb milestoned #4948
  • 00:33
    Aaronontheweb synchronize #4882
  • Apr 18 21:47
    Aaronontheweb synchronize #4882
  • Apr 18 21:45
    Aaronontheweb synchronize #4946
  • Apr 18 21:45
    Aaronontheweb commented #4946
  • Apr 18 21:45

    Aaronontheweb on dev

    modified PingPong / RemotePingP… (compare)

  • Apr 18 21:45
    Aaronontheweb closed #4947
  • Apr 18 21:44
    Aaronontheweb synchronize #4946
  • Apr 18 21:38
    Aaronontheweb auto_merge_enabled #4947
  • Apr 18 21:38
    Aaronontheweb labeled #4947
  • Apr 18 21:38
    Aaronontheweb opened #4947
  • Apr 18 21:21
    Aaronontheweb commented #4882
  • Apr 18 21:21
    Aaronontheweb synchronize #4882
  • Apr 18 20:36
    Aaronontheweb commented #4946
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)
Vagif Abilov
@object
This is how we are currently doing this without streams, with plain actors. But it is very tedious, each actor needs to be aware of this, this is one of the main reasons we started looking into streams.
Damian Reeves
@DamianReeves
If I change the rest of my cluster to Wire does Lighthouse also need to be changed to wire?