Foi o ultimo workshop do ano do BrainCode, comandado por Lucas Souza (Virgao) com participacao do Danilo Sampaio, focado 100% em filas no Laravel — o tema que, segundo os proprios instrutores, mais gera duvida de configuracao na comunidade. Clima de aula pratica, com codigo sendo escrito ao vivo, bugs de demonstracao sendo debugados na hora e perguntas da plateia respondidas em tempo real, incluindo um caso real de concorrencia em sistema de triagem hospitalar.
Destaques
- Conceitos base: diferenca entre connection (config/queue.php), fila (a pilha dentro da conexao) e driver (o mecanismo que processa — sync, database, redis, sqs).
- Criacao de job com
php artisan make:job, disparo comExampleJob::dispatch()e execucao comphp artisan queue:work(equeue:listenpara hot-reload em dev). - Configuracao completa do driver SQS ao vivo: criacao da fila na AWS, usuario IAM com policy de acesso, chaves de acesso, variaveis de ambiente (
SQS_PREFIX,SQS_SUFFIX, regiao) e instalacao doaws/aws-sdk-php. - Comparativo tecnico Redis vs SQS: Redis e generico (serve tambem pra cache) e exige gerenciamento manual (Horizon/Telescope); SQS e servico dedicado com monitoramento, seguranca e escalabilidade prontos, e extremamente barato (primeiro milhao de requisicoes gratis, depois centavos de dolar por milhao).
- Modificadores de job na pratica:
ShouldBeUnique(comuniqueId()),ShouldBeUnique::until processing,ShouldBeEncryptedpara dados sensiveis,WithoutOverlapping,RateLimited(limiter customizado noAppServiceProvider),Skipcondicional edispatchSyncpara forcar execucao sincrona. - Encadeamento de jobs com
Bus::chain([...])para garantir ordem de execucao assincrona (ex: processar pagamento antes de notificar CRM), incluindo como interromper a cadeia com$this->fail(). - Middleware de job (
app/Jobs/Middleware) para logica reutilizavel tipo throttling, edispatchAfterResponsecomo alternativa "semi-sincrona" sem fila de verdade (exige PHP-FPM/FastCGI). - Tratamento de falhas:
$tries,$maxExceptions,release()com delay,fail()explicito, e configuracao de producao com Supervisor (autostart,autorestart,numprocs) — inclusive o cuidado de nao usartimeoutquando ha jobs legitimamente longos. - Estrategia de filas por prioridade (
--queue=high,low) seguindo a convencao do proprio Laravel.
Profundidade tecnica
A aula foi alem do "como disparar um job": entrou em armadilhas reais, como a serializacao de Eloquent models em jobs — se o registro for deletado entre o dispatch e o processamento, o find() na desserializacao quebra, e a recomendacao pratica foi passar toArray() ou tratar a exception de model not found. Tambem foi discutida a diferenca entre tries (tentativas por falha tratada ou release()) e maxExceptions (tentativas por excecao nao tratada), e o motivo de configurar autostart/autorestart no Supervisor mesmo sabendo que fatal errors derrubam o worker. A comparacao Redis vs SQS foi feita com numeros de custo reais e trade-offs de operacao, nao so teoria.
Faça parte do Clã
Se voce quer esse tipo de profundidade tecnica aplicada direto no seu dia a dia — sem enrolacao, sem hype, com metodo testado em projeto real — o Clã Beer and Code e o caminho. La voce tem acesso a encontros como esse, mentoria tecnica continua e uma comunidade que troca ideia de verdade sobre o que funciona em producao.
Engenharia de IA virou profissão, e se aprende construindo, não assistindo. O Clã Beer and Code é o ambiente onde isso acontece ao vivo, toda semana: RAG, agentes, observabilidade e LLMOps em projetos reais, ao lado de quem já está em produção. É pago, é assinatura, e é exatamente o ambiente que estes encontros dão uma amostra.
Entrar no Clã