Thank you @Konrad this information really helps, and you are onehundred percent correct, we could potentially hit the same problems with a rate limit for sendgrid for example for high thruput usecases.
A small question if you know that, will outlook respond with standard rate limiting headers that will indicate how much left for the rate limit and when it will be renewed?
We could try using the retry functionality from our queue in case of rate limit to retry exponentionally, but this is not bullet proof specifically in your usecase where you want to send that many events.
I guess we would some how need to manage a queue throttling based on environmentId + providerId and make sure we are not processing more than the limit of the provider (we can easily write all provider limits in a configuration file based on public docs of theirs) .
@zacclifton do you have any ideas on how we can achieve this with the existing system relying on a queue and managing a central state of current rate limit status per provider and organization?