Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 10:45
    nagytech edited #4086
  • 10:45
    nagytech synchronize #4086
  • 10:43
    nagytech opened #4086
  • 09:00
    Horusiath commented #4077
  • 06:31
    Aaronontheweb commented #4085
  • 06:28
    Aaronontheweb commented #4085
  • 06:24
    Aaronontheweb commented #4085
  • Dec 07 11:49
    IgorFedchenko commented #4085
  • Dec 07 10:31
    IgorFedchenko commented #4085
  • Dec 07 08:36
    IgorFedchenko commented #4085
  • Dec 06 20:57
    IgorFedchenko commented #4085
  • Dec 06 20:32
    IgorFedchenko commented #4085
  • Dec 06 20:01
    IgorFedchenko commented #4085
  • Dec 06 19:55
    IgorFedchenko commented #4085
  • Dec 06 16:22
    Aaronontheweb labeled #3997
  • Dec 06 16:22
    Aaronontheweb closed #3997
  • Dec 06 16:20
    IgorFedchenko commented #3997
  • Dec 06 16:08
    IgorFedchenko commented #4085
  • Dec 06 15:50
    Aaronontheweb assigned #4085
  • Dec 06 15:50
    Aaronontheweb labeled #4085
Arjen Smits
@Danthar
ah yep that would do it
but if your doing a query, and it deadlocks, wont your dbdriver throw an exception of some kind ?
either way, there is no magic code in the Akka.Net dispatchers that prevents these kind of problems. It needs to adhere to the normal set of rules regarding the TPL like anything else.
Akka.net makes concurrency easier to implement, and prevents alot of the pitfalls that come with the territory. But its not perfect ;) (nothing is)
Christian Duhard
@cduhard
hmm is there a straight forward way to know when all watched children are stopped?
This feels kinda ugly while (Context.GetChildren().Any(x => x.GetType() == typeof (Account)))
to11mtm
@to11mtm
Truth!
Is there a good way to 'monitor' for a deadlock in cases like this? Perhaps configuring the dispatcher's deadlines
Bartosz Sypytkowski
@Horusiath
@cduhard Context.Watch?
Christian Duhard
@cduhard
they are watched
Bartosz Sypytkowski
@Horusiath
you can create counter to increment once child of specific type is created, and decrement it on Terminated
Christian Duhard
@cduhard
yeah, that's an option. what I would like to do is implement sagas like you did in your latest Cqrs app
then I wouldn't have this complex graceful shutdown problem
Bartosz Sypytkowski
@Horusiath
"someday" I will find time to finish it
Christian Duhard
@cduhard
thats what's making this harder than it should be. i have to wait for sagas to playout inside my aggregates
i have to cut off incoming messages and lets everything passivate, it shouldn't be hard but it is tricky to keep it simple and foolproof
Christian Duhard
@cduhard
@Horusiath "someday" soon I hope
Bartosz Sypytkowski
@Horusiath
there is a huge load of stuff to finish, but I hardly have any time to work on akka from over a month
Christian Duhard
@cduhard
job getting in the way?
Bartosz Sypytkowski
@Horusiath
yes. Well, at least it's interesting
Alex Valuyskiy
@alexvaluyskiy
This message was deleted

@Horusiath, I've been trying Akka.Streams, and I have couple of questions. For example I have this Scala code

  override def eventsByTag(tag: String, offset: Long = 0L): Source[EventEnvelope, NotUsed] = {
    Source.actorPublisher[EventEnvelope](EventsByTagPublisher.props(tag, offset, Long.MaxValue,
      refreshInterval, maxBufSize, writeJournalPluginId)).mapMaterializedValue(_ ⇒ NotUsed)
      .named("eventsByTag-" + URLEncoder.encode(tag, ByteString.UTF_8))
  }

1) What should I use, instead of NotUsed? Unit/Unit.Instanse or something else?
2) I should return Source<EventEnvelope, Unit>, but method "Named" returns IGraph<SourceShape<EventEnvelope>, NotUsed>. How to convert SourceShape<T> to T?

Marc Piechura
@marcpiechura
@alexvaluyskiy yep we are using Unit as NotUsed
2 Use Source.FromGraph to cast the graph back into a source
Kris Schepers
@schepersk
@Horusiath Playing with Sharding, I just encountered the following: 2 nodes up, both hosting a region, both processing shard messages. One node leaves cluster, after a few seconds I restart it, it joins the cluster again, but it doesn't receive any shards. The node that didn't shut down keeps on processing all the messages for the entities. So it seems the rebalancing of the shards to the rebooted region doesn't happen?
Bartosz Sypytkowski
@Horusiath
@schepersk rebalancing check is triggered after X seconds, and some specific threshold needs to be reached in order to start rebalancing
in case when the difference between number of shards on two machines is too small
Kris Schepers
@schepersk
10 shards, 2 nodes in my case?
Bartosz Sypytkowski
@Horusiath
also: are you sure, that your cluster node really rejoined?
Kris Schepers
@schepersk
from what I can see in the logging, yes.
Bartosz Sypytkowski
@Horusiath
can you extract some example to reproduce from that?
This is the sample I'm working on..
Bartosz Sypytkowski
@Horusiath
@schepersk I'll managed to run your example, but to verify it, I'll need to find some spare time. Sorry, but it may take a while to find a reason for this. I'll take a look into it after work
Kris Schepers
@schepersk
@Horusiath But you are seeing the same behavior? Thanks for looking into this..
Nicolas Bourbaki
@b0urb4k1
How lightweight are agents?
Zetanova
@Zetanova
Agents or actors?
Nicolas Bourbaki
@b0urb4k1
actors sorry
I was thinking if they are lightweight enough to use them for agents in a multi agent system.
I would assume though that if you would like to do that you would write your own dispatcher for it.
Zetanova
@Zetanova
not big, i little bigger then a normal object, plus some registration in lists
yes, the are very light in this sence
over a count of 100k you would need to think about memory
Nicolas Bourbaki
@b0urb4k1
Ok :)
Zetanova
@Zetanova
but i dont know the exact byte count for each in avg.
i am loading ~1000 per each aggregate root type
and the app has still low memory consumation
messages are short lived and most likly removed on Gen0 GC
Nicolas Bourbaki
@b0urb4k1
Are there any multi agent systems that use Akka.net?
Zetanova
@Zetanova
multi tenant?