Skip to main content
Project sinks consume one declared record type. Lifecycle and command-output streams remain separate even when they share a provider and destination.

Lifecycle sink

Using invocation_id as a partition key keeps one invocation on one Kafka partition. Keep event_id in the payload as the deduplication identity. Confirm the destination topic is not compacted when complete lifecycle history must remain replayable.

Command-output sink

Command output groups adjacent text into bounded byte chunks and flushes on elapsed time, stream change, size, or close. A loss record reports bounded-queue drops. This stream is useful for remote transcripts but is not lifecycle evidence.

Configuration

Runtime configuration can narrow declaration filters:
SQLBuild owns envelope validation, local queueing, filtering, and bounded dispatch. The project owns destination credentials, serialization, routes/topics, acknowledgements, retries, retention, and durability. SQLBuild core does not provide a Kafka or ClickHouse implementation.

Delivery behavior

  • Lifecycle dispatch prioritizes failures and terminal facts, remaining FIFO within equal priority.
  • Queue overflow can displace or drop lower-priority records and is reflected in sink accounting.
  • A failing or timed-out sink is isolated from command correctness.
  • Provider setup and declaration errors fail before execution because the project configuration is invalid.
  • Providers shared by multiple sinks are set up and torn down once per command.
Use lifecycle facts—not command-output records—to build execution state and timelines.