Nisha Solanki
03/19/2026, 7:33 AMDrashti Chhatralia
03/20/2026, 11:30 AMEdgar Ramírez (Arch.dev)
03/20/2026, 10:04 PMmeltano.yml would helpDrashti Chhatralia
03/23/2026, 1:38 PMplugins:
extractors:
- name: tap-mysql
variant: transferwise
config:
use_gtid: true
replication_method: LOG_BASED
engine: mysql
filter_dbs: <redacted>
port: 3306
select:
- <db>-*.*
metadata:
<db>-*:
replication-method: LOG_BASED
loaders:
- name: target-postgres
variant: transferwise
config:
dbname: <redacted>
default_target_schema: <redacted>
Let me know if anything more specific is needed.Drashti Chhatralia
03/25/2026, 8:17 AMbinlog.py logic in the PipelineWise tap-mysql implementation (https://github.com/transferwise/pipelinewise-tap-mysql/blob/master/tap_mysql/sync_strategies/binlog.py), and it appears that while the tap can read a full GTID set, it is not able to persist the GTID set in the Meltano state; only a single GTID is stored.
In our setup, Meltano reads from a replica that processes both master-replicated transactions and its own local transactions. For normal pipeline execution, everything works as expected, and all transactions are processed correctly. However, we want to rely on GTIDs for failure scenarios (e.g., master or replica failure). In such cases, when a new replica is promoted or created, Meltano cannot accurately determine which GTIDs to start from because the state only contains the GTID of a single server. Additionally, a full refresh is not feasible because the required binlog files will already be purged.
This is the primary issue we are currently facing. If you have any solutions, suggestions, or recommended approaches to address this, please let us know.Drashti Chhatralia
03/31/2026, 9:50 AMEdgar Ramírez (Arch.dev)
04/10/2026, 6:18 PMDrashti Chhatralia
04/14/2026, 9:57 AMEdgar Ramírez (Arch.dev)
04/14/2026, 6:59 PMReuben (Matatika)
04/14/2026, 7:13 PM