I’m quite struggling without native Change Data Capture feature in PostgreSQL.
That would be great to implement it, possibly in not so complicated way.
Can Logical replication be a little be modified or reused to do not replicate data into destination table as is but to insert each change into “change table” (like in oracle 11 CDC)?
That change table should have at lease few additional columns
Operation (I/D/U)
txid
Commit_time_stamp
If you look at logical decoding, that's basically what you have, isn't it? It won't go into a table, but you can consume it into one if you want. Look at for example wal2json for examples of how to consume it -- but the system is pluggable so you can build your own or use one of the others available plugins.