-
Sub-task
-
Resolution: Done
-
Major
-
None
-
None
-
False
-
-
False
-
-
Actually the extension support only one engine at time. We want to be able to introduce more than one engine retrievable with a registry like:
@ApplicationScoped public class DebeziumEngineRegistry { private final Map<String, RunnableDebezium> engines = new ConcurrentHashMap<>(); private final Map<String, DebeziumEngineConfiguration> configurations = new ConcurrentHashMap<>(); public void registerEngine(String name, RunnableDebezium engine, DebeziumEngineConfiguration config) { engines.put(name, engine); configurations.put(name, config); } public RunnableDebezium getEngine(String name) { return engines.get(name); } public DebeziumEngineConfiguration getConfiguration(String name) { return configurations.get(name); } public Set<String> getEngineNames() { return engines.keySet(); } }
furthermore the quarkus configuration should be defined in this way in order to manage multiple instances:
quarkus.debezium.instance1.offset.storage=org.apache.kafka.connect.storage.MemoryOffsetBackingStore quarkus.debezium.instance1.name=native1 quarkus.debezium.instance1.topic.prefix=native1 quarkus.debezium.instance1.plugin.name=pgoutput1 quarkus.debezium.instance1.snapshot.mode=initial quarkus.debezium.instance1.table.include.list=ycsb.table1 quarkus.debezium.instance2.offset.storage=org.apache.kafka.connect.storage.MemoryOffsetBackingStore quarkus.debezium.instance2.name=native2 quarkus.debezium.instance2.topic.prefix=native2 quarkus.debezium.instance2.plugin.name=pgoutput quarkus.debezium.instance2.snapshot.mode=initial quarkus.debezium.instance2.table.include.list=ycsb.table2