protoactor-dotnet
protoactor-dotnet copied to clipboard
Persistent Cluster PubSub
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.
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.
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.
This functionality go out of scope of pub-sub if #1713 is accepted
Closing since #1713 has been merged