How can we ensure that the right consumer groups receive the right events (i.e., "Project Creation" events for Consumer Group D and "Project Update" events for Consumer Groups A, B, and C) while using only one Event Hub?
How can we stop irrelevant consumer groups from even receiving certain events, preventing them from processing events they are not interested in?
Clarifying the use of partitions and consumer groups in Azure Event Hubs:
It's not possible in Event Hubs. All consumer groups see all events. In the Event Hubs model, it is the consumer's responsibility to filter out irrelevant events.
You should consider using Service Bus Topics instead if you want filtering capabilities at the service level. There you can have multiple subscriptions on a topic and then specify filters on each of them that can look at the contents of the message for example. Documentation for filters: https://learn.microsoft.com/en-us/azure/service-bus-messaging/topic-filters.