finds.dev← search

// the find

go-mysql-org/go-mysql-elasticsearch

★ 4,155 · Go · MIT · updated Oct 2023

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.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →