Repolode
warpstreamlabs

warpstreamlabs/bento

Processador de streams em Go que conecta brokers de mensagens, serviços de nuvem e bancos de dados, com uma linguagem de mapeamento para transformar payloads entre eles.

Estrelas
2,168
Forks
236
Issues abertas
153
Último commit
há 20 minutos

O que é?

Bento é um processador de streams escrito em Go. Ele lê dados de fontes como Kafka, NATS, Redis streams, serviços da AWS e do GCP e bancos de dados SQL, passa esses dados por uma cadeia de processadores e os grava em destinos. Os pipelines são declarados em YAML, então uma configuração básica pode caber em um único arquivo de configuração.

As etapas de processamento incluem enriquecimento, transformação e filtragem; os payloads são reestruturados com Bloblang, a linguagem de mapeamento integrada do Bento. A entrega é feita por um modelo de transações em processo, sem estado em disco. Assim, quando as fontes e os destinos oferecem entrega pelo menos uma vez, o Bento busca preservar esse modelo de entrega mesmo em caso de falhas. O Bento é distribuído como binário estático, imagem Docker ou função serverless.

O Bento expõe endpoints de liveness e readiness e envia métricas para Statsd, Prometheus e outros backends, além de traces do OpenTelemetry. É possível adicionar componentes personalizados como plugins em Go. Este repositório é um fork do projeto original, criado antes da mudança de licença.

Recursos principais

  • 01Conecta-se a Kafka, NATS, Redis, AWS, GCP, Azure, bancos de dados SQL e outros serviços como fontes e destinos.
  • 02Pipelines declarativos em YAML com a linguagem de mapeamento integrada Bloblang.
  • 03Oferece entrega pelo menos uma vez sem estado em disco quando as fontes e os destinos dão suporte a esse modelo.
  • 04É distribuído como binário estático, imagem Docker ou função serverless.
  • 05Oferece endpoints de saúde /ping e /ready, além de observabilidade com Prometheus, Statsd e OpenTelemetry.
  • 06Dá suporte a componentes personalizados escritos como plugins em Go.

Casos de uso

  • Mover eventos do Kafka ou NATS para um banco de dados ou índice de busca com transformações simples.
  • Enriquecer ou filtrar um stream de mensagens antes que ele chegue aos serviços downstream.
  • Conectar serviços de nuvem, como AWS Kinesis ou GCP Pub/Sub, a outros brokers.
  • Executar um pipeline leve em contêiner sem operar uma plataforma de streams mais robusta.

Início rápido

  1. 1

    Baixe a imagem do Docker

    docker pull ghcr.io/warpstreamlabs/bento
  2. 2

    Execute o Bento no Docker com o arquivo de configuração montado

    docker run --rm -v /path/to/your/config.yaml:/bento.yaml ghcr.io/warpstreamlabs/bento

Antes de usar

  • O README informa que o processo de lançamento ainda está em andamento, portanto ainda não há uma instalação binária padrão.
  • A licença não está claramente identificada nos metadados do projeto.
  • Alguns componentes precisam de bibliotecas C externas e de uma tag de build especial, como zmq4.

Tópicos

Perguntas frequentes

O que é bento?
Processador de streams em Go que conecta brokers de mensagens, serviços de nuvem e bancos de dados, com uma linguagem de mapeamento para transformar payloads entre eles. Bento é um processador de streams escrito em Go. Ele lê dados de fontes como Kafka, NATS, Redis streams, serviços da AWS e do GCP e bancos de dados SQL, passa esses dados por uma cadeia de processadores e os grava em destinos. Os pipelines são declarados em YAML, então uma configuração básica pode caber em um único arquivo de configuração.
bento é gratuito? Qual é a licença?
bento é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
bento ainda é mantido?
Manutenção ativa. O último commit de bento foi em 22 de out. de 2026.
Para que posso usar bento?
Mover eventos do Kafka ou NATS para um banco de dados ou índice de busca com transformações simples. Enriquecer ou filtrar um stream de mensagens antes que ele chegue aos serviços downstream. Conectar serviços de nuvem, como AWS Kinesis ou GCP Pub/Sub, a outros brokers. Executar um pipeline leve em contêiner sem operar uma plataforma de streams mais robusta.
Como instalar bento?
Baixe a imagem do Docker: docker pull ghcr.io/warpstreamlabs/bento Execute o Bento no Docker com o arquivo de configuração montado: docker run --rm -v /path/to/your/config.yaml:/bento.yaml ghcr.io/warpstreamlabs/bento
Onde consigo bento?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/warpstreamlabs/bento

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados