Context
I have an Azure Functions application deployed in Azure that needs to process events from an Event Hub.
Within this application I want some events to be processed for multiple independent features.
Requirements
What I want to avoid is that if one feature fails, that all other features would fail too.
Additionally, I'd like to have an easy way of retrying an event for a specific feature.
Research
After reading the documentation and browsing the internet I've come across Consumer Groups, which indicate that they can be used for independent parallel processing.
However, I get the feeling that Consumer Groups aren't meant for my case and should be seen more as 1 consumer group per application rather than 1 consumer group per feature.
Am I correct in this assumption?
After searching more, I haven't really come across anyone tackling this problem, while it feels to me as if it should be quite common.
How would this normally be achieved?
Potential solution?
One thing I have been considering is to have a single Azure Function that receives all events.
When an event is received, this Azure Function would check who is interested in the event and would then per feature send the same event to a different Event Hub with an indication of which feature it should be processed for (partitioned by the feature).
This would then allow the events to be processed independently per feature.
Is this a "normal" way of processing events via Event Hub?
Are there any pitfalls that I'm missing?