Voltar aos projetos

Serviço de streaming

X Tube

Pipeline orientado a eventos para processar mídia com Go, SQS, S3, FFmpeg e Kafka.

Visão técnica

Processamento de mídia orientado a eventos

O fluxo separa ingestão, processamento e entrega de mídia usando S3, SQS, workers Go, FFmpeg e Kafka.

ImpactoS3 → SQS → Go → S3 → Kafka

fluxo assíncrono de processamento e progresso

Ingestão

Objetos no S3 disparam mensagens SQS para iniciar processamento assíncrono.

Processamento

Workers em Go executam FFmpeg e produzem chunks e artefatos.

Progresso

Eventos Kafka são publicados após confirmação do upload de cada chunk processado.

Fluxo de execução

Fluxo principal

Processamento de mídia orientado a eventos

O fluxo separa ingestão, processamento e entrega de mídia usando S3, SQS, workers Go, FFmpeg e Kafka.

UPLOAD -> CLAIM JOB -> FFMPEG -> ARTIFACTS -> EVENT PUBLISHED

  1. 01

    Mídia entra no S3

    O processamento inicia por SQS em vez de ficar preso a uma requisição síncrona.

  2. 02

    Worker processa com FFmpeg

    O job gera chunks e artefatos, mantendo a mensagem ativa durante processamentos longos.

  3. 03

    Upload confirma progresso

    Depois do upload no S3, eventos Kafka comunicam o avanço do processamento.

Decisões de engenharia

Arquitetura

Pipeline assíncrono explícito

S3, SQS, Go, FFmpeg, S3 e Kafka definem etapas claras entre ingestão e entrega.

Remoção somente após sucesso

A mensagem só é removida da fila depois da conclusão bem-sucedida do processamento.

Progresso confirmado por upload

Eventos Kafka são emitidos após confirmação do upload de cada chunk processado.

Controles de risco

Confiabilidade

Perda de jobs longos

A renovação de visibility timeout evita que jobs em andamento sejam perdidos durante processamentos longos.

Operação observável

Prometheus, health checks e logs estruturados sustentam visibilidade operacional.

Stack

Processamento

  • Go
  • FFmpeg

Mensageria

  • SQS
  • Kafka

Armazenamento e observabilidade

  • S3
  • Prometheus
  • health checks
  • logs estruturados

Resultado

Entrega de mídia desacoplada e observável

O projeto demonstra processamento orientado a eventos com confirmação de progresso e controles para jobs longos.

fluxo assíncrono de processamento e progresso
S3 → SQS → Go → S3 → Kafka

Próximo projeto

GGCompress

Engine em Go para processar arquivos grandes em paralelo mantendo memória controlada e integridade verificável.

Próximo projeto