Singer data flow
PipelineWise uses the Singer specification as the record protocol between source taps and targets:
tap | optional transform-field | optional mbuffer | target
FastSync bypasses this protocol for supported native bulk-transfer routes. See FastSync.
Messages
Message |
Producer |
Purpose |
|---|---|---|
|
Tap |
Describes stream fields, types, keys, and schema changes. |
|
Tap |
Carries one source record or delete event. |
|
Tap and target |
Carries replication bookmarks and target acknowledgement. |
Taps
A tap reads connector configuration, a selected catalog, and optional prior state. It writes ordered Singer messages to standard output. PipelineWise owns the generated JSON files; operators configure the source through YAML and should not edit generated catalog or state while a tap is running.
See Taps (Data Sources) for source status and connector-specific requirements.
Targets
A target consumes Singer messages, creates or evolves destination tables, loads records, and emits acknowledged state. PipelineWise persists target-emitted state only after the target process has accepted the corresponding data.
Singer interoperability does not guarantee that every packaged tap-target pair has production support. Use Connectors for endpoint and route status.
Acknowledgement boundary
The source’s latest consumed position can be ahead of the state durably accepted by the target. PipelineWise treats the target-emitted state as the recovery boundary. Buffered or in-memory records beyond that boundary must remain replayable after interruption.
For PostgreSQL LOG_BASED replication, the logical slot’s flush feedback is
bounded by the minimum acknowledged LSN in state.json. See
Stream buffering and acknowledgement for termination and replay behaviour.