Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 13:36
    Aaronontheweb commented #3973
  • 13:34
    dependabot-preview[bot] synchronize #3995
  • 13:34

    dependabot-preview[bot] on nuget

    Bump BenchmarkDotNet from 0.10.… (compare)

  • 13:34
    dependabot-preview[bot] edited #3995
  • 13:34
    dependabot-preview[bot] synchronize #3993
  • 13:34

    dependabot-preview[bot] on nuget

    Bump Google.Protobuf from 3.9.1… (compare)

  • 13:34
    dependabot-preview[bot] synchronize #3991
  • 13:34

    dependabot-preview[bot] on nuget

    Bump Microsoft.Extensions.Depen… (compare)

  • 13:34
    dependabot-preview[bot] synchronize #3989
  • 13:34

    dependabot-preview[bot] on nuget

    Bump ApiApprover from 3.0.1 to … (compare)

  • 13:34
    dependabot-preview[bot] synchronize #3992
  • 13:34
    dependabot-preview[bot] edited #3993
  • 13:34
    dependabot-preview[bot] synchronize #3985
  • 13:34

    dependabot-preview[bot] on nuget

    Bump System.Reflection.Emit fro… (compare)

  • 13:34
    dependabot-preview[bot] synchronize #3986
  • 13:34

    dependabot-preview[bot] on nuget

    Bump FsCheck.Xunit from 2.9.0 t… (compare)

  • 13:34
    dependabot-preview[bot] synchronize #3983
  • 13:34

    dependabot-preview[bot] on nuget

    Bump NUnit from 3.6.1 to 3.12.0… (compare)

  • 13:34
    dependabot-preview[bot] edited #3991
  • 13:34

    dependabot-preview[bot] on nuget

    Bump ApprovalUtilities from 3.0… (compare)

Ricky Blankenaufulland
@ZoolWay
did not occur to me that I should not ask before others told node 2 they have subscribed...
I'll give it a try
Ricky Blankenaufulland
@ZoolWay
@goodisontoffee You were right. It takes some time. But it feels odd to wait 10s before publishing... either I will have to publish in intervals or there should be some kind of message when the subscription "is ready"...
Arjen Smits
@Danthar
there is an subscribeAck message that is returned once the subscription has succeeded
you can listen to that (?)
Stephen Newman
@goodisontoffee
Does that get fired once all the other nodes in the cluster have received knowledge of the subscription, or does the local pub sub mediator fire it once it's accepted the subscription?
Arjen Smits
@Danthar
that is fired once there is cluster consensus
Stephen Newman
@goodisontoffee
sweet
Arjen Smits
@Danthar
Ricky Blankenaufulland
@ZoolWay
@Danthar I disagree. I was publishing on SubscribeAck but it did not get delivered to other nodes
Either thats a bug or it is just because my own subscription is committed to the cluster - but not that I received all of the other subscriptions
Arjen Smits
@Danthar
@ZoolWay thats odd. As far as i understand it. You should receive an SubscribeAck back once the subscription process has been completed on all nodes. /cc @Horusiath
Ricky Blankenaufulland
@ZoolWay
let me sum up my observation:
node 1 starts and subscribes to topic, gets subscribe-ack, publishes and of course only itself gets the message
node 2 starts and subscribes to topic, gets subscribe-ack, publishes and only itself gets the message - after some time (just tested 10s but might work with less) publishes again and both nodes get the messages
to the SubscribeAck seems to acknoledge my new subscription but not necessarily that I got all subscription from other nodes... when you think about it, how could you ever know you got all of those?
Arjen Smits
@Danthar
@ZoolWay the local mediator publishes its state via cluster gossip to the other nodes
the interval at which it does so is configurable via de config
not sure at what interval its implemented now
Ricky Blankenaufulland
@ZoolWay
default config is 1s
but like always with time, you cannot 100% be sure
for my use case I will require to publish update regulary so I can live with that for now
Arjen Smits
@Danthar
When the node is UP, the local mediator receives the current cluster state
not sure at what time that state is received
Ricky Blankenaufulland
@ZoolWay
Does the CurrentClusterState include all cluster-known subscriptions?
Arjen Smits
@Danthar
no only the nodes
so it knows which nodes have which roles
The more i look at this, the more it becomes clear that there is a clear tradeoff between availability and consistency
if it would be highly consistent, it would mean pubsub would not be available untill it received all updates.
if you have a large cluster
that can potentially take a while
so the default implementation opts for availability
while consistency can be added fairly easy
hmm, i was thinking in terms of atleastonce delivery mechanisms on your publish messages
but that would mean on broadcast messages you would have to know how many subscribers there are
which is no good
Vagif Abilov
@object
@Horusiath We have probably found the cause for an issue in SQL adapter but something needs to be clarified, I commented here: akkadotnet/Akka.Persistence.SqlServer#46
Ricky Blankenaufulland
@ZoolWay
@Danthar Yeah, turns out you have to decide. So if you want everyone in pub-sub to know something, you have to repeat to near yourself to be eventually consistent.
Arjen Smits
@Danthar
Well i suppose if you as a publisher really want to make sure every listener has received your message. As the architect of your application, you would know where your subscribers live. So you would know that for example, there is always 1 subscriber per node. That knowledge would enable you to do an atleastonce delivery mechanism. In combination with querying the cluster state to know how many nodes there are up.
And usually if you publish a message. And a new node that is coming up, does not receive that message. Well thats to bad. It will get the next one.
Shamsul Amry
@ShamsulAmry

@ShamsulAmry if your using the local evenstream you can easily create partition spaces by prefixing the topic your subscribing and publishing on with the tenantid

@Danthar by "prefixing the topic", did you mean to add a property to the event object instance passed to Context.System.EventStream.Publish() and filter on that property when receiving the messages?

Arjen Smits
@Danthar
@ShamsulAmry Yup. that is one way. Thats the easiest way. However if you feel that creating a separate infrastructure for doing multi-tenant pub/sub is a better fit. By all means. Do so. There is no obvious right or wrong here.
Shamsul Amry
@ShamsulAmry
@Danthar Thanks. Asked in case I will be losing out on any features I didn't know about if I used new EventStream() for each tenant instead of using the one pre-created with the ActorSystem.
Голодный Монстр
@Kalinin_Aleks_twitter
Hi all! I need help! I have the problem with "EndpointDisassociatedException". If I do restart remote actor I am receiving the message in logs:
[akka://ARS-Runner-System/system/endpointManager/reliableEndpointWriter-akka.tcp%3a%2f%2fARSSystem%40127.0.0.1%3a2551-1] Association with remote system akka.tcp://ARSSystem@127.0.0.1:2551 has failed; address is now gated for 5000 ms. Reason is: [Akka.Remote.EndpointDisassociatedException: Disassociated
at Akka.Remote.EndpointWriter.PublishAndThrow(Exception reason, LogLevel level)
at Akka.Remote.EndpointWriter.Unhandled(Object message)
at Akka.Actor.ActorCell.<>cDisplayClass109_0.<Akka.Actor.IUntypedActorContext.Become>b0(Object m)
at Akka.Actor.ActorBase.AroundReceive(Receive receive, Object message)
at Akka.Actor.ActorCell.ReceiveMessage(Object message)
at Akka.Actor.ActorCell.AutoReceiveMessage(Envelope envelope)
at Akka.Actor.ActorCell.Invoke(Envelope envelope)]
And I can't catch this Exception for restarting the system because it is not "RemotingLifecycleEvent" and internal Exception. How can I handle the error? Thanks
Arjen Smits
@Danthar
@Kalinin_Aleks_twitter The Exception is normal. It happens when the remote node becomes disassociated. This can happen for various reasons.
if you want to be notified when that happens
you can use the local system.EventStream to subscribe to AssociationErrorEvent
Голодный Монстр
@Kalinin_Aleks_twitter
Yes, but as I can understand in my case was invoked PublishAndThrow(Exception reason, LogLevel level, bool needToThrow = true) which is trying to publish "DisassociatedEvent". Am I wrong?
So I should do subscribe to DisassociatedEvent
Arjen Smits
@Danthar
The log shows the fact that you Disassociated. Internally this is communicated via the EndpointDisassociatedException exception. My guess is that you are getting this on the sender side ?
Thickar
@Thickar
Hi there, I want to connect an SQLDateReader object as source Enum for Akka streams source, but i cant figure out how! could any one help?