Sink, defined in the repo’s root sink.go:
Specis the sink’s self-description — identity, config schema, and capabilities (what powers the catalog, same as a source’sSpec).Openprepares the sink for one run.Applywrites aBatchunder anApplyOptions.Policy(the write policy governing that batch), returning aWriteReceipt.CommitorAbortfinalizes the run.
SinkSpec.SchemaField names the pipeline-scoped config field that holds
where output lands — a schema, namespace, database, or key prefix — so the
server can default it from the source connection’s normalized name.
Optional capabilities
A sink can implement staged/transactional writes, key-based upserts, or typed DDL (materializing a resource’s schema ahead of its records). See Optional interfaces.Registering it
Same pattern as a source: aregister.go that registers with the engine,
then a blank import wherever it should be available — see Embedding as a
library.