Kafka gateway: Kafka CreateTopics API (key 19) — Iggy stream/topic provisioning
- Dominant language
- Rust
- Stars
- 4.9k
- Forks
- 432
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 173
Description
Part of #3560.
## Summary
Implement Kafka **CreateTopics (API key 19)** admin handler that creates Iggy streams and topics.
## Motivation
Allows `kafka-topics.sh --create` and auto-topic creation from producers against the gateway.
## Depends on
- #3421
- #3533 — IggyBridge core (`ensure_stream_and_topic`)
## Scope
- [ ] Decode CreateTopics request (scoped versions v2–v7)
- [ ] Map `num_partitions`, `replication_factor` (document: RF=1 or ignored; Iggy replication model)
- [ ] Create Iggy stream/topic via SDK; idempotent if exists
- [ ] Per-topic error in response (TOPIC_ALREADY_EXISTS, etc.)
- [ ] Config validation: reject unsupported Kafka topic configs with documented limits
## Acceptance criteria
- [ ] `kafka-topics.sh --create --topic test --bootstrap-server localhost:9093` succeeds
- [ ] Created topic appears in Metadata and accepts Produce
## References
- Rollout plan: https://github.com/apache/iggy/discussions/3253#discussioncomment-17181030
Contributor guide
Assessment
This issue has not been assessed yet.