Go examples: add a sink data producer

Aberta Para iniciantes
#4,792 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
86/100
Tipo de issue
Funcionalidade
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
go
Domínio
backend

Direção de pesquisa

Leia examples/python/sink-data-producer/producer.py e a seção correspondente do README; em seguida, examine examples/go/common/client.go e examples/go/getting-started/producer/main.go para verificar os padrões de conexão e configuração. Adicione examples/go/sink-data-producer/main.go e a seção do README com as variáveis de ambiente e os campos de registro especificados. O trabalho estará concluído quando o comando go run do README funcionar em um servidor recém-iniciado, criar os recursos ausentes, enviar os lotes solicitados e go vet ./... for aprovado.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

go good first issue
Description

The Rust, Java, Node and Python examples include a sink data producer, which fills a topic with JSON records so a sink connector has something to read. The Go examples have none.

Affected area / component

Go examples

Proposed solution

Add examples/go/sink-data-producer/main.go and a "Sink Data Producer" section in examples/go/README.md.

  • Use examples/python/sink-data-producer/producer.py and its README section as the model. Match the Rust and Python record fields (user_id, user_type, email, source, state, created_at, message) so one connector config works for every SDK. The Node version uses a different set, so do not copy from it.
  • Use the same environment variables as the Python README: IGGY_STREAM (default qw), IGGY_TOPIC (default records), IGGY_ADDRESS, IGGY_USERNAME and IGGY_PASSWORD.
  • examples/go/common/client.go and examples/go/getting-started/producer/main.go show connecting, logging in and creating the stream and topic.
  • The producer creates the stream and topic if they are missing, sends 100 batches of 100 to 499 records, logs the total and exits. Running it again against the same server works, and the stream and topic are kept.
  • Put the command in a go run line in the README, so scripts/run-examples-from-readme.sh runs it in CI.

TLS is out of scope.

How to test: start a fresh server (cargo run --bin iggy-server -- --fresh --with-default-root-credentials), run the producer from examples/go with the README command, poll a few messages back to check they are valid JSON, and run go vet ./... in examples/go.

Good first issue
  • I think this could be a good first issue for a new contributor
Linguagem predominante
Rust
Estrelas
5.2k
Forks
516
Merge médio
2d 12h
PRs com merge (30d)
145

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de apache/iggy

Todas as issues de apache/iggy

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.