Follow changes in your database

Event Horizon follows the changes in a MySQL, PostgreSQL, SQL Server or MongoDB table as they happen: every insert, update and delete arrives as an event. Turn on the database change log first. MySQL needs binlog_format=ROW, PostgreSQL needs wal_level=logical, SQL Server needs CDC enabled on the table and MongoDB needs a replica set. Use a read replica if you have one.

If we can reach your database, add a CDC Source node to a workflow, choose the database, the engine and the table, and start the workflow. The existing rows are copied first, then the changes follow.

If your database sits on a private network, run the agent next to it instead. Only outbound HTTPS leaves your network, and the database password never does. In the app, add a Probe node, choose the engine and the table under "Database changes via the agent", generate the probe key and copy its ingest URL. Then, on a machine that can reach the database, run:

EH_CDC_PASSWORD=... npx @event-horizon-data/agent \
  --endpoint https://ingest.eventhorizondata.com/ingest/probe/<org>/<node> \
  --key ehp_<key> \
  --cdc mysql://eh_cdc@10.0.3.12/shop

The password is read from EH_CDC_PASSWORD, never from the command line. Add --cdc-tls for TLS, --cdc-never to keep columns from ever leaving your network, and --cdc-allow to make the agent refuse any table that is not on your list. For several tables, use [[cdc]] blocks in the agent config file, described in the agent README.

Delivery is at least once, with deterministic ids, and the position only advances after we confirm we stored the changes. The position is kept on our side, so reinstalling the agent does not copy the table again. Run one agent per probe: a second one takes over from the first. PostgreSQL keeps a replication slot while the agent is away. If you retire the agent for good, drop it with SELECT pg_drop_replication_slot('eh_cdc_<node id>').

Send your first event.

Create an account and get from raw data to a dashboard in minutes.