I have been using Azure Service bus for a couple of years. I have an API in front, that publish messages to a service bus topic. On that topic, I have two subscription, with Azure functions consuming each subscription. The one writes the message to blob storage and the other saves the data in a database.
/--- subscription 1 -> Function 1 -> database
API -> topic <
\--- subscription 2 -> Function 2 -> blob storage
I have had a lot of problems with performance on Azure Service Bus and ended up upgrading to a premium service bus plan. It's running great, but it's very expensive, considering I'm only using it to save a message to two storage types.
I'm thinking about the possibility to switch to another architecture where my API stores all messages in blob storage. Then create a function that triggers on a new blob in blob storage and saves the result to the database.
API -> blob storage -> function -> database
This would be a much cheaper approach, but I'm a bit cautious implementing this approach. With service bus, I have multiple ways of optimizing the performance like upgrading to an even larger plan, consuming messages in batches and more. With the blob storage approach, I put all of my eggs in the basket of blob storage and the performance of that.
Anyone with ideas, similar experiences, or something to contribute?