I'm designing a system where I have to integrate with multiple Message Queues (MQ) based backends. I have one microservice for each backend for processing MQ payloads. I have chosen Kafka as the medium of messaging and considering Kafka-MQ-Connects for MQ integration.
I can think of two approaches to integration.
- Kafka-MQ-Connect (Source/ Sink) connect per backend + Kafka topic (to/ from) per backend.
Pros. - Can extend to new backends without touching the existing connectors.
Cons. - Too many connectors and topics to maintain.
- Single Kafka-MQ-Connect (Source/ Sink) + Single Kafka topic (to/ from) for all the backends. Additionally, the Sink connects do dynamic routing to MQs and the microservices will have built-in Message-Filters to filter only relevant messages.
Pros. - Few topics and connectors to maintain.
Cons. - Addition of new MQ backends would require connector changes.
What would be the better approach? Are there any other integration alternatives apart from the above?

