Skip to content

docs(streaming): one --topic vocabulary for kafka and iggy - #312

Merged
eddietejeda merged 2 commits into
mainfrom
docs/streaming-families
Sep 22, 2026
Merged

eddietejeda merged 2 commits into
mainfrom
docs/streaming-families

Conversation

@eddietejeda

Copy link
Copy Markdown
Contributor

Stacked on #311. Draft until hotdata-dev/dlthubworker#289 and #290 deploy, since it documents a family and a capability production does not serve yet.

What

  • --topic help: one flag for every log engine, entries carry the engine's hierarchy as a path (orders for Kafka, events/orders for Iggy), table named from the whole path. No new flags, which is the point.
  • Skill: iggy joins the family list; the --topic, --stream, and write_mode shorthand notes cover both engines; three agent tips on streaming: tail-by-batch on --every with a committed position per topic and keyed upsert, retention gaps fail loudly and hold the position, start: latest is a continuous-only seed.

Verified

CLI tests pass (the help still carries the "Kafka sources" phrase the contract tests pin). Skill gate passes: 66 commands, 161 flags documented. The commands shown are the exact ones run against the local cluster for both engines.

Base automatically changed from docs/skills-streaming-results to main September 22, 2026 02:46
…ontinuous behaves

--topic serves every log engine: an entry carries the engine's hierarchy
as a path (kafka 'orders', iggy 'events/orders'), so no family-specific
flag exists. The help and the skill say so, and the skill gains the
streaming facts an agent needs: tail-by-batch on --every, a committed
position per topic, keyed upsert on partition+offset, a loud failure at
a retention gap, and start=latest as a continuous-only seed.

Describes dlthubworker #289 and #290; merge after they deploy.
@eddietejeda
eddietejeda force-pushed the docs/streaming-families branch from 9c63a07 to cf339b4 Compare September 22, 2026 02:46
@codecov

codecov Bot commented Sep 22, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@eddietejeda
eddietejeda marked this pull request as ready for review September 22, 2026 03:06
@eddietejeda
eddietejeda requested a review from a team as a code owner September 22, 2026 03:06
@eddietejeda
eddietejeda requested review from anoop-narang and removed request for a team September 22, 2026 03:06
Comment thread src/commands/ingest.rs
/// path: Kafka has one level (`--topic orders`), Iggy two
/// (`--topic events/orders`). Each topic lands in a destination
/// table named from the whole path (`events_orders`); put them under
/// a common prefix with --dest-table-prefix.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: add Iggy to the --dest-table-prefix doc at line 231 (not blocking).

Line 231 lists the several-table families as SQL --table/--sql, Iceberg, DuckLake, Kafka, REST. An Iggy user follows this line to --dest-table-prefix, then reads a family list that excludes Iggy. The same list in skills/hotdata/SKILL.md:393 also omits iggy.

Comment thread skills/hotdata/SKILL.md
# --stream shorthand for --type continuous (still needs --every).
# Offered only where `hotdata ingest sources fields
# <family>` says `continuous: yes` — today filesystem,
# derived, kafka, iggy; the server refuses it elsewhere.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: drop derived here, or add derived to the family list at line 324 (not blocking).

The word derived appears in no other file of this repo. The family list at line 324 names sql, filesystem, kafka, iggy, iceberg, delta, ducklake, rest. An agent reading this line may call --family derived and take the 422 as a service fault.

Comment thread skills/hotdata/SKILL.md
# --config also accepts a bare config object, @- (stdin), or inline JSON.
# --credentials takes the secret half separately. Keep secrets out of argv.
# Families: sql, filesystem (buckets), kafka, iceberg, delta, ducklake, rest.
# Families: sql, filesystem (buckets), kafka, iggy, iceberg, delta, ducklake, rest.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: add iggy to the --family help in src/commands/datasource.rs (not blocking).

Lines 67 and 96 of that file list sql, filesystem, iceberg, delta, ducklake, kafka, rest, and the error at line 512 repeats the same list. hotdata ingest sources add --help therefore contradicts this skill line. The CLI does not validate --family, so iggy already works.

Comment thread src/commands/ingest.rs
return Err(
"nothing to read — pass --table <name> (SQL, Iceberg, DuckLake), --table-path \
<path> (Delta), --topic <name> (Kafka), --format with an optional --glob \
<path> (Delta), --topic <name> (Kafka; Iggy as stream/topic), --format with an optional --glob \

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

super nit: rewrap this string line (not blocking). The line reaches 113 characters, while the other lines of the literal stop near 90.

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Documentation-only change. Topic strings pass through to the selector untouched, so a path-form topic such as events/orders needs no client-side change. Four non-blocking comments on family-list consistency are inline. CI / test was still queued at review time.

@eddietejeda
eddietejeda merged commit 25ea101 into main Sep 22, 2026
14 checks passed
@eddietejeda
eddietejeda deleted the docs/streaming-families branch September 22, 2026 04:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant