Pixels Sink is the data sink service for Pixels. It ingests debezium-format change events from multiple sources (Debezium engine, Kafka, or storage files), converts them into Pixels events, and writes them to a configured sink (Retina, CSV, Proto, Flink, or none).
This project is under active development.
- Architecture and pipeline overview: docs/overview.md
- Transaction handling: docs/transaction.md
- Usage guide: docs/usage.md
- Configuration reference: docs/configuration.md
- Local dev environment (Docker): develop/README.md
- Pixels
- Java 17
- Maven 3.9+
- Source and sink dependencies based on your configuration
- Kafka broker if
sink.datasource=kafka - Debezium + database access if
sink.datasource=engine - Retina service if
sink.mode=retina - Trino if freshness checking is enabled and uses Trino
- Kafka broker if
mvn -q -DskipTests package./pixels-sink [config.properties]The script reads conf/jvm.conf and uses a properties file configured inside ./pixels-sink by default. If you pass a path, it overrides the default.
- Main class:
io.pixelsdb.pixels.sink.PixelsSinkApp - Program arguments:
-c conf/pixels-sink.aws.properties
- Sample configs are in
conf/. - Start with
conf/pixels-sink.aws.propertiesand adjust. - See docs/configuration.md for a full key reference and guidance.
- Enable Prometheus metrics with
sink.monitor.enable=true. - Metrics endpoint listens on
sink.monitor.port(default9464).