Advise on upload processing
Hello, I am here to seek some advise regarding the architecture of an application. It is written in .net. The application has a part where tenants can upload fotos into their account (blob storage). They can do that either via Web UI or by connecting an uploader application (like Azure Storage Explorer). Each tenant basically has some kind of image-inbox. Those uploaded images need to be processed afterwards. It is worth to mention that we use Aspire and Azurite when developing.
My issue starts with the processing of those images. First I was using azure functions to process those images and they have been triggered by storage blob events. This worked but was kind of slow. When we installed Aspire it was even not possible to use Azure Functions anymore.
This was the time when we removed Azure Functions and created our own “Worker” application. This application polled the Azure Blob Storage and if there were images started a sub-worker per tenant to process those files. This was already much faster and more reliable. But after deploying to production we quickly found out, that the cost sky-rocketed due to the polling.
I then looked into then new GetChangeFeedClient approach which seems to be a less expensive version to get informed about new data in the blob storage. I developed that just to find out, that it is not supported in Azurite, thus we can not even run in locally. At this point I do not even understand why Azurite does not support all of the Azure features. How can anyone develop something without a simulator? Anyway this seems to be a dead end.
I also thought about Azure Event Grid but that is also not supported on Azurite.
At this point I am not sure what to do. Should I wait for .net 9 and go back to Azure Functions because they will be supported and will I live with the slow processing and overhead? Or should I ditch Azure Blob Storage and find another storage solution?
Any advise is appreciated…
Hello, I am here to seek some advise regarding the architecture of an application. It is written in .net. The application has a part where tenants can upload fotos into their account (blob storage). They can do that either via Web UI or by connecting an uploader application (like Azure Storage Explorer). Each tenant basically has some kind of image-inbox. Those uploaded images need to be processed afterwards. It is worth to mention that we use Aspire and Azurite when developing. My issue starts with the processing of those images. First I was using azure functions to process those images and they have been triggered by storage blob events. This worked but was kind of slow. When we installed Aspire it was even not possible to use Azure Functions anymore. This was the time when we removed Azure Functions and created our own “Worker” application. This application polled the Azure Blob Storage and if there were images started a sub-worker per tenant to process those files. This was already much faster and more reliable. But after deploying to production we quickly found out, that the cost sky-rocketed due to the polling. I then looked into then new GetChangeFeedClient approach which seems to be a less expensive version to get informed about new data in the blob storage. I developed that just to find out, that it is not supported in Azurite, thus we can not even run in locally. At this point I do not even understand why Azurite does not support all of the Azure features. How can anyone develop something without a simulator? Anyway this seems to be a dead end. I also thought about Azure Event Grid but that is also not supported on Azurite. At this point I am not sure what to do. Should I wait for .net 9 and go back to Azure Functions because they will be supported and will I live with the slow processing and overhead? Or should I ditch Azure Blob Storage and find another storage solution? Any advise is appreciated… Read More