Documentation
¶
Overview ¶
Package cdc contains a http.Handler which can receive webhook events from a CockroachDB CDC changefeed. Row updates and resolved timestamps are written to staging tables. The resolved timestamps are processed as a logical loop.
Index ¶
- Variables
- func ProvideConveyorConfig(cfg *Config) *conveyor.Config
- func ProvideDLQConfig(cfg *Config) *dlq.Config
- func ProvideSchemaWatchConfig(cfg *Config) *schemawatch.Config
- func ProvideScriptConfig(cfg *Config) *script.Config
- func ProvideSequencerConfig(cfg *Config) *sequencer.Config
- type Config
- type Handler
- type WebhookPayload
- type WebhookPayloadLine
Constants ¶
This section is empty.
Variables ¶
var Set = wire.NewSet( ProvideHandler, ProvideConveyorConfig, ProvideDLQConfig, ProvideSchemaWatchConfig, ProvideScriptConfig, ProvideSequencerConfig, conveyor.Set, )
Set is used by Wire.
Functions ¶
func ProvideConveyorConfig ¶
ProvideConveyorConfig is called by Wire.
func ProvideDLQConfig ¶
ProvideDLQConfig is called by Wire.
func ProvideSchemaWatchConfig ¶ added in v1.0.5
func ProvideSchemaWatchConfig(cfg *Config) *schemawatch.Config
ProvideSchemaWatchConfig is called by Wire.
func ProvideScriptConfig ¶
ProvideScriptConfig is called by Wire.
func ProvideSequencerConfig ¶
ProvideSequencerConfig is called by Wire.
Types ¶
type Config ¶
type Config struct {
ConveyorConfig conveyor.Config
DLQConfig dlq.Config
SequencerConfig sequencer.Config
SchemaWatch schemawatch.Config
ScriptConfig script.Config
// Discard all incoming HTTP payloads. This is useful for tuning
// changefeed throughput without considering Replicator performance.
Discard bool
// If non-zero, wait half before and after consuming the payload.
DiscardDelay time.Duration
// The maximum amount of data to buffer when reading a single line
// of ndjson input. This can be increased if the source cluster
// has large blob values.
NDJsonBuffer int
// The maximum amount of time that we want to allow an HTTP handler
// to run for.
ResponseTimeout time.Duration
}
Config adds CDC-specific configuration to the core logical loop.
type Handler ¶
type Handler struct {
Authenticator types.Authenticator // Access checks.
Config *Config // Runtime options.
Conveyors *conveyor.Conveyors // Mutation delivery to the target.
TargetPool *types.TargetPool // Access to the target cluster.
}
Handler is an http.Handler for processing webhook requests from a CockroachDB changefeed.
func ProvideHandler ¶
func ProvideHandler( auth types.Authenticator, cfg *Config, conv *conveyor.Conveyors, pool *types.TargetPool, ) (*Handler, error)
ProvideHandler is called by Wire.
type WebhookPayload ¶
type WebhookPayload struct {
Payload []WebhookPayloadLine `json:"payload"`
Length int `json:"length"`
Resolved string `json:"resolved"`
// This field is populated by [NewWebhookPayload]. It is not part
// of any actual payload, but is useful when synthesizing workloads.
Range hlc.Range `json:"-"`
}
WebhookPayload describes the envelope structure that we expect to see from a CockroachDB webhook changefeed.
func NewWebhookPayload ¶
func NewWebhookPayload(batch *types.MultiBatch) (*WebhookPayload, error)
NewWebhookPayload constructs a payload for the batch.
func NewWebhookResolved ¶
func NewWebhookResolved(ts hlc.Time) (*WebhookPayload, error)
NewWebhookResolved constructs
type WebhookPayloadLine ¶
type WebhookPayloadLine struct {
After json.RawMessage `json:"after"`
Before json.RawMessage `json:"before"`
Key json.RawMessage `json:"key"`
Topic string `json:"topic"`
Updated string `json:"updated"`
}
WebhookPayloadLine is an encoding of a single mutation.