Artie Reader reads from databases to perform historical snapshots and also reads change data capture (CDC) logs for continuous streaming. The generated messages are Debezium capable.
- Historical table snapshots do not require database locks, which means Artie Reader minimizes impact to database performance and avoids situations like replication slot overflow.
- Debezium compatible. The generated messages are consistent with Debezium’s message format.
- Portable and easy to operate. Shipped as a standalone binary with no external dependencies.
Snapshot | Streaming | |
---|---|---|
DynamoDB | ✅ | ✅ |
MongoDB | ✅ | ✅ |
MySQL | ✅ | ✅ |
PostgreSQL | ✅ | ❌ |
SQL Server | ✅ | ❌ |
Artie uses ANTLR to parse DDL queries. In order to run Reader locally, you'll need the antlr generated files which requires an antlr install. Install instructions can be seen here.
For Macs OS, we can install via brew:
brew install antlr
make antlr
This command will compile the Lexer and Parser grammar files and generate the files in /lib/antlr/generated
. We are sourcing our Grammar files from grammars-v4.
To get started, you'll need a config.yaml
file, you can see examples of this in the examples folder.
go run main.go --config config.yaml