Replicating PostgreSQL data into Citus/Greenplum?
After some research I've managed to come up with an answer. Kudos to @a_horse_with_no_name for pointing me in the right direction.
Real-time sync between different data sources can be done using Kafka Connect.
Kafka Connect allows to send data from various systems to a Kafka cluster via Source Connectors and read data from Kafka using Sink Connectors. All the platform-specific code for getting data from a system to Kafka or transferring data from Kafka to a system is abstracted away by the maintainers of the specific connector.
Connector maintainers usually will respect some kind of a &quot;contract&quot; between Sinks and Sources, i.e. they will agree in advance on a normalized message format, which allows to use disparate Sources and Sinks (e.g. you can have a PostgreSQL Source and Elasticsearch &amp; Neo4J Sinks in parallel, despite the fact they have completely different paradigms).
For the case of syncing Postgres with Citus/Greenplum, it should be possible to do via Debezium PostgreSQL Source Connector and JDBC Sink connector (both Citus and Greenplum have JDBC support).