protoactor-dotnet icon indicating copy to clipboard operation
protoactor-dotnet copied to clipboard

Persistent Cluster PubSub

Open rogeralsing opened this issue 2 years ago • 3 comments

Subscriptions for Cluster PubSub is already persistent. But we don't have persistent messaging yet. Currently the flow of pubsub is as follows:

Publisher -> Envelope -> Topic Actor -> Subscriber

By allowing to plug in a persistent provider, e.g. Kafka, we could have a flow like so:

Publisher -> Envelope -> Kafka Topic -> Topic Actor -> Subscriber

This would be completely seamless from a user perspective.

rogeralsing avatar Jul 07 '21 20:07 rogeralsing

Some thoughts.

The default PubSub Ack's back when all subscribers have received the message. We could make this configurable

  • Ack when all subscribers have received the message
  • Ack when Topic actor has received, but not yet sent to subscribers
  • Ack when the message is placed on Kafka (or other)
  • Ack directly, fire and forget, best effort

To architect this, we need to be able to configure both the Producer, and the Topic actor. Maybe just with a shared config object.

rogeralsing avatar Jul 08 '21 06:07 rogeralsing

I think developers should be able to use Ack.

Kafka is a persistent queue of outbound processes. Ack is very important to restart when the actor system crashes.

seungyongshim avatar Jul 09 '21 00:07 seungyongshim

This functionality go out of scope of pub-sub if #1713 is accepted

marcinbudny avatar Jul 14 '22 06:07 marcinbudny

Closing since #1713 has been merged

marcinbudny avatar Sep 16 '22 10:09 marcinbudny