Favicon of Maxwell's Daemon

Maxwell's Daemon

Maxwell's Daemon reads the MySQL binary log and writes row-level changes as JSON to Kafka, Kinesis, and other streaming platforms — a single-purpose CDC process with no framework around it.

LicenseOpen source (permissive)· Apache-2.0
DeploymentSelf-hosted
PricingFree
Operational complexityLow
WorkloadStreaming
LanguageJava

Use it when

  • The need is exactly this: MySQL changes as JSON on Kafka or Kinesis, consumable without a schema registry or deserializer.
  • Operational weight must stay minimal; one JVM process replaces a connector framework, and setup is measured in minutes.
  • Classic CDC consumers are the audience: ETL feeds, audit logs, cache invalidation, search-index maintenance.
  • Budget is zero; Apache-2.0 with no commercial edition.

Think twice when

  • Any source besides MySQL exists or is planned; there is no PostgreSQL, SQL Server, Oracle, or MongoDB path, and there will not be (Debezium covers those).
  • Delivery guarantees must be stronger than at-least-once with careful producer settings (acks=all, retries).
  • Schema-aware payloads matter; events are plain JSON rows, with DDL tracked in Maxwell's own schema store rather than in a registry.

How it runs

A single Java process tails the binlog (binlog_format=row, replication grants, and its own maxwell schema on the source) and writes JSON events to Kafka, Kinesis, and other targets. maxwell-bootstrap loads existing tables; include/exclude filters and JavaScript hooks shape the stream.

Details

Compare

How Maxwell's Daemon answers the questions Change Data Capture turns on.

Change Data Capture
How it works
Initial snapshotmaxwell-bootstrap for initial table load
End-to-end lagNear real-time; tails the binlog continuously
Delivery guaranteeAt-least-once: requires acks=all and retries
Schema driftTracks DDL in its own schema store; can emit DDL events
Running it
What you runOne JVM process; state kept in a maxwell schema on MySQL
Connections
SourcesMySQL only
Source requirementsbinlog_format=row, REPLICATION grants, and its own maxwell schema
TransformationsInclude/exclude filters; JavaScript hooks can edit or suppress rows
DestinationsKafka, Kinesis and other stream targets
Cost
Billing unitNone: Apache-2.0 with no commercial edition

Share:

Alternatives to Maxwell's Daemon

Favicon

 

  
  
Favicon

 

  
  
Favicon