Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 06:51

    dependabot-preview[bot] on nuget

    (compare)

  • 06:51
    dependabot-preview[bot] closed #4041
  • 06:51
    dependabot-preview[bot] commented #4041
  • 06:51
    dependabot-preview[bot] labeled #4051
  • 06:51
    dependabot-preview[bot] opened #4051
  • 06:51

    dependabot-preview[bot] on nuget

    Bump ApprovalTests from 3.0.10 … (compare)

  • 06:51

    dependabot-preview[bot] on nuget

    (compare)

  • 06:51
    dependabot-preview[bot] closed #4040
  • 06:51
    dependabot-preview[bot] commented #4040
  • 06:50
    dependabot-preview[bot] labeled #4050
  • 06:50
    dependabot-preview[bot] opened #4050
  • 06:50

    dependabot-preview[bot] on nuget

    Bump ApprovalUtilities from 3.0… (compare)

  • 06:50

    dependabot-preview[bot] on nuget

    (compare)

  • 06:50
    dependabot-preview[bot] closed #3991
  • 06:50
    dependabot-preview[bot] commented #3991
  • 06:50
    dependabot-preview[bot] labeled #4049
  • 06:50

    dependabot-preview[bot] on nuget

    Bump Microsoft.Extensions.Depen… (compare)

  • 06:50
    dependabot-preview[bot] opened #4049
  • Nov 18 22:20
    IgorFedchenko synchronize #4047
  • Nov 18 22:19
    IgorFedchenko synchronize #4032
Aaron Stannard
@Aaronontheweb
they decided it was easier to port all of those old C# queries to run on top of the JVM via an adapter layer like Mobius
and leverage the benefits of thousands of man-years worth of work there
Vasily Kirichenko
@vasily-kirichenko
I've not seen great activity in Mobius repo tho.
Aaron Stannard
@Aaronontheweb
the Mobius project itself is basically a series of transpilation hacks
and yeah
I agree with you there
I think with many of these OSS projects Microsoft has released lately
stuff that's not core to their business
or to their customers
Vasily Kirichenko
@vasily-kirichenko
and it's still scary to use it in production. One of the main points of using Spark is that it's used by lots and lots of large companies, so there is a great chance it will work with zero problems for you.
Aaron Stannard
@Aaronontheweb
i.e. Mobius being a good example
they let it languish once they get it to a state where it solves MSFT's internal problems
and don't really commit to supporting it
social capital is a huge part of the value of an OSS ecosystem in general
Vasily Kirichenko
@vasily-kirichenko
TBH, I like the java/scala community a lot more, than .NET and MS as a whole.
(so far :) )
Aaron Stannard
@Aaronontheweb
lol
I haven't been on the contribution side of any real JVM project much
Vasily Kirichenko
@vasily-kirichenko
I'm either ;)
but the "MS will do everything for us" mindset is unhealthy.
Aaron Stannard
@Aaronontheweb
totally agree
looking at some of the stuff MSFT is doing around .NET Core
i.e. killing off the need for third party libraries for things like dependency injection
helps create that mentality too
Vasily Kirichenko
@vasily-kirichenko
"oh, no, another shitty open source library..." - I heard this from C# devs several times.
yes.
Another good thing about jvm - a lot of libraries. It's shocking for the first time, especially after years writing F# :)
Aaron Stannard
@Aaronontheweb
there does seem to be an awfully large amount of NIH-ing in .NET sometimes
like there is some effort threshhold
where if the effort is low enough to just roll your own library, people will do that rather than coalesce around a standard
that's why there's like 30+ Zipkin client implementations in .NET, all missing different features / feature-completeness
there should still be some multiple choices / alternatives for libraries - helps keep the ecosystem healthy
but the ecosystem can never really take off if there isn't some knowledge institutionalized in the use of key ones
I'm really glad stuff like DotNetty and Akka.NET exists today; back when I first needed those tools five years ago I had to make them myself
so things are improving
but still lightyears behind the JVM ecosystem
consider it "intellectual debt" that the .NET ecosystem is gradually paying off
Vasily Kirichenko
@vasily-kirichenko
yep. About client libraries, I agree. Every time you need to talk to a new thing, you have to play russian roulette choosing a less buggy and feature full one. As most servers in big data world are run on jvm, you can always be sure that you use the most stable and idiomatic lib for it. The story with .NET Kafka client had been ridiculous for years - there hadn't been a single stable client. People literally could not work with it from .net. A team at my company ended up exposing a HTTP frontend for a Kafka cluster.
Vasily Kirichenko
@vasily-kirichenko
just applied cluster singleton :) works OK, but when I kill the node on which the actor is running, it takes about a minute to spawn it on another node. Could it be related to the fact that I use Consul?
@Horusiath ^^
Bartosz Sypytkowski
@Horusiath
@vasily-kirichenko It potentially could.
I don't remember right now if singleton migration is triggered when node becomes unreachable, or when it's marked as dead
but I'm almost sure that it's need to be identified as dead - unreachable nodes could happen in network partition quite often, so it would be bad to spawn another singleton as reaction for simple unreachability
Vasily Kirichenko
@vasily-kirichenko
the log is
12:47:29 INFO  [ClusterSingletonManager, 6] Previous oldest removed [akka.tcp://xxx@localhost:4888]
12:47:29 INFO  [ClusterSingletonManager, 6] Younger observed OldestChanged: [ -> myself]
12:47:29 INFO  [ClusterSingletonManager, 6] Singleton manager started singleton actor [akka://xxx]
12:47:29 INFO  [ClusterSingletonManager, 6] ClusterSingletonManager state change [Younger -> Oldest] Akka.Cluster.Tools.Singleton.YoungerData
12:47:29 INFO  [0, Culture=neutral, PublicKeyToken=null]], 9] Getting server list...
12:47:30 ERROR [OneForOneStrategy, 11] Object reference not set to an instance of an object. Object reference not set to an instance of an object.
BTW, I have no idea how to catch the exception on the last line.
What can it be?
Bartosz Sypytkowski
@Horusiath
No idea. Do you use some custom supervision strategy?
Vasily Kirichenko
@vasily-kirichenko
No.
Don't even specify one explicitly.
Vasily Kirichenko
@vasily-kirichenko
@Horusiath I have another question :) That cluster singleton actor spawns a couple of other actors and a stream. As far as I understand, it's its responsibility to shutdown the stream when it's stopping. Do you find the following code good or there is a better / simpler way to do it?
let stream mat =
    Source...
    |> Source.viaMat (KillSwitches.Single()) Keep.both
    |> Source...
    |> Source.``to`` Sink.ignore
    |> Graph.run mat

let props (mat: IMaterializer) : Props =
    props(
        let rec loop (streamKillSwitch: IKillSwitch) (msg: obj) =
            match msg with
            | LifecycleEvent PostStop -> 
                streamKillSwitch.Shutdown()
                ignored()

            | _ -> unhandled()

        fun (ctx: Actor<obj>) ->
            let taskQueue, streamKillSwitch = stream mat
            spawn ctx "another-actor" (Another.props taskQueue) |> ignore
            become (loop streamKillSwitch)
    ).ToProps()
Deniz İrgin
@Blind-Striker
is it possible to define more than one dispatcher with different throughput to use in different actors. Like this ;
``` 
            custom-dispatcher-300 {
                type = Dispatcher
                throughput = 300
            }

            custom-dispatcher-400 {
                type = Dispatcher
                throughput = 400
            }

            custom-dispatcher-500 {
                type = Dispatcher
                throughput = 500
            }
```