Add change detection and watermark tracking to extractors
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 242
- Forks
- 45
- PR merge metrics
- No merged PRs in 30d
Description
Context
Meteor currently extracts everything on every run. For high-volume sources, this is wasteful and slow. Change detection allows extractors to emit only what changed since the last run.
Scope
- Define a watermark/checkpoint interface that extractors can implement
- Store watermarks between runs (local file, config store, or Compass state)
- Update high-volume extractors to support incremental extraction:
- BigQuery — use
INFORMATION_SCHEMAtimestamps for modified tables - Postgres/MySQL — track schema modification timestamps
- Kafka — track topic configuration changes
- BigQuery — use
- Emit change type metadata on records:
created,updated,deleted - Fall back to full extraction when no watermark exists
Design Considerations
- Watermark storage should be pluggable (local file for dev, remote store for production)
- Full extraction should remain available as a fallback or explicit mode
- Change detection accuracy varies by source — document limitations per extractor
Key Files
| Area | Location |
|---|---|
| Plugin interfaces | plugins/plugin.go |
| Runner orchestration | runner/runner.go |
| Runner config | runner/config.go |
| CLI run command | cmd/run.go |
| State store (new) | state/ |
| BigQuery extractor | plugins/extractors/bigquery/bigquery.go |
Why
Incremental extraction reduces load on sources, shrinks payloads, and enables faster refresh cycles. A graph that updates in minutes instead of hours is significantly more useful for AI agents.
References
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the plugin interfaces in plugins/plugin.go and runner orchestration in runner/runner.go, then review runner/config.go, cmd/run.go, and the BigQuery extractor. Define the state/ watermark boundaries and how full extraction remains available. Done means the listed high-volume extractors can emit change metadata and fall back to full extraction when no watermark exists.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, google-cloud, kafka, mysql, postgresql
- Domain
- backend, data-engineering, databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100