Orleans persistent stream provider for RabbitMQ. This provider is reliable, thus ACKing messages only after they are processed by a consumer.
Example configuration (see TestCluster.Create()
in Orleans.Streams.RabbitMqStreamProvider.Tests
for more):
var silo = new SiloHostBuilder()
.UseLocalhostClustering()
.AddMemoryGrainStorage("PubSubStore")
.AddRabbitMqStream("RMQProvider", configurator =>
{
configurator.ConfigureRabbitMq(host: "localhost", port: 5672, virtualHost: "/",
user: "guest", password: "guest", queueName: "test");
})
.ConfigureLogging(log => log.AddConsole())
.Build();
await silo.StartAsync();