antonyvorontsov / RabbitMQ.Client.Core.DependencyInjection

.Net Core library-wrapper of RabbitMQ.Client for Dependency Injection.
MIT License
111 stars 36 forks source link

Upcoming changes #72

Open antonyvorontsov opened 3 years ago

antonyvorontsov commented 3 years ago

I have struggled to find free time to develop this project due to my busy schedule and it looked like this library is frozen, but now I am going to get back to the active stage of development. This issue is representation of my plans on version 5.0.0 and upcoming ones which imply breaking changes to the current paradigm of how the library works. So I want to share my plans to anyone who is interested.

version 5.0.0

If you want to request some functionality feel free to do it.

This issue will be updated with additional information.

MaslovD commented 3 years ago

what is the replacement from IQueueService in term of sending message?

antonyvorontsov commented 3 years ago

This one https://github.com/AntonyVorontsov/RabbitMQ.Client.Core.DependencyInjection/blob/master/src/RabbitMQ.Client.Core.DependencyInjection/Services/Interfaces/IProducingService.cs

ayelchin commented 3 years ago

Are there plans to implement publish confirms? https://www.rabbitmq.com/confirms.html#publisher-confirms

remotenode commented 3 years ago

If we want two different microservices to handle the same event, we need to have two different queues

Currently, I define queues in the following way:

new RabbitMqExchangeOptions()
                            {
                                Type = "direct",
                                DeadLetterExchange = "exchange.dlx",
                                RequeueAttempts = 4,
                                RequeueTimeoutMilliseconds = 50,
                                Queues = new List<RabbitMqQueueOptions>
                                {
                                    new()
                                    {
                                        Name = $"{QueuePrefix}-{UserStatusChangedRoutingKey}",
                                        RoutingKeys = new HashSet<string> { UserStatusChangedRoutingKey }
                                    },

                                }
                            })

But it would be handy if we only provide queue name and this library automatically creates queue with name which consist of QueuePrefix from configuration(will need to add to config) + queue name supplied by a user

@AntonyVorontsov What do you think?