rebus-org / Rebus.SqlServer

:bus: Microsoft SQL Server transport and persistence for Rebus
https://mookid.dk/category/rebus
Other
43 stars 44 forks source link

Different databases for transport and databus. #70

Closed bog1978 closed 4 years ago

bog1978 commented 4 years ago

Hello! I like Rebus, thanks for your work. I am developing large system using Rebus with SqlServer for transport, databus, persistance and subscriptions. There are some limitations preventing use of other technologies like RabbitMq or MongoDb. So i limited to windows only and .net only solutions. There will be about 200 microservises. So i must care about scaling transport and databus. I would like to have more then one DB to store queues and BLOBs. Maybe even one DB per microservice. But i can not find any way to send requests between databases. There is connection factory available, but i have no any message context in factory method to choose between different connections. Is there any posibility to choose connection string based on message type for example? Or mayby some queue naming convention can do the trick?

mookid8000 commented 4 years ago

Hi @bog1978 , I'm very sorry for taking so long to reply – for some reason I did not see your question until now... 🙄

It sounds to me like you're planning on building something that has the potential to become quite large. Therefore, I would not recommend that you use SQL Server as the transport, because a relational database is not that good at being a message broker.

I suggest you take a look at your desired architecture quality attributes and make a good case with your operations department, or whoever it is that you need to talk to, to e.g. introduce a real message broker into your system landscape.

If that is totally impossible to you, and you DO intend to use SQL Server for everything, then you're pretty much on your own. 😐 Rebus does not support using multiple databases with its current SQL transport, but it should be possible to implement something by providing a custom ITransport.

Please let me know if this is a path you would like to follow – I can guide you in the right direction, if you'd like to implement your own Rebus transport.