// the find
go-mysql-org/go-mysql-elasticsearch
Sync MySQL data into elasticsearch
A Go service that syncs MySQL data into Elasticsearch using binlog replication — initial dump via mysqldump, then incremental changes via row-based binlog. Good fit for teams that need a lightweight CDC bridge without running JVM-based connectors.
- Binlog-based CDC with position tracking means it can resume after restarts without re-dumping the full table — that's the hard part done right.
- Wildcard table support (regex-based) is genuinely useful for sharded schemas with hundreds of sub-tables that need to land in one index.
- Field-level mapping rules let you rename columns, split comma-delimited strings into ES arrays, and coerce types — covers the 80% of transform cases without a full ETL pipeline.
- Ingest pipeline support means you can offload more complex transforms to ES itself rather than forking this tool.
- Hard capped at MySQL < 8.0 and ES < 6.0 — both are years out of date. ES 6.0 was released in 2017; you cannot use this against anything modern without patching it yourself.
- The maintainer explicitly posted a call for help in the README, last pushed in October 2023, and the Todo list still says 'MySQL 8' and 'ES 6' — this project is effectively unmaintained.
- Requires mysqldump to live on the same host as the sync service for initial loads, which breaks any containerized or cloud-managed MySQL setup where you don't control the host.
- No schema change handling at runtime — ALTER TABLE while the service is running is unsupported, which means any migration requires a service restart and potentially a full re-sync.