In our case, we would like to do CDC on Postgres tables which have no primary key.
A further thought about this, there could be also cases that the DB primary keys are not the right key for CDC streaming. It seems a valid enhancement to be able to let end users create/update CDC key from the primary keys on the source table.
I did some experiment using the embedded engine:
In the configuration, I provide key as "key.of.table.<table_name_with_schema/catalog>", then the columns are provided as a list separated by a comma, ie: key.of.table.myschema.mytable=col1, col2. This way, I can either create a new key or update the key to use some other columns than the table primary keys.
I have a light implementation to achieve this. I can provide it if you think this is an interesting feature.