A 5ª edição da OLW abriu com Danilo e Virgão contando a trajetória dos dois desde 2013 até virarem referência em Laravel no Brasil, e logo emendou para o code-along: construir, ao vivo, a API de um e-commerce fictício (a "lojinha do BeerCode") desde a modelagem do banco até o deploy monitorado em produção na AWS.
Destaques
- Modelagem do banco pensada para e-commerce real: marcas, categorias, produtos, SKUs (variações de estoque) e imagens, com coluna
is_featurepara destacar itens na home — e a decisão consciente de deixar orders/order_sku de fora por limite de tempo. php artisan make:model --api -m -f -spara gerar model, migration, factory e controller CRUD de uma vez; uso deconstrained()nas migrations para já criar as foreign keys certinhas.- Seeds e factories em massa (50 produtos, 150 SKUs, 750 imagens) usando
has()para encadear a criação de relacionamentos (SKU cria imagens, produto cria SKUs). - Adaptação do scaffold do Breezy para autenticação 100% stateless com Sanctum (sem sessão, sem cookie) — geração de token puro via
createToken(), pensando já na escala horizontal do dia 3. - Camada de Service explícita como única camada extra sobre o MVC padrão do Laravel — rejeição direta de repository pattern, DDD e interfaces desnecessárias ("a chance de você trocar o ORM do projeto é menos de zero por cento").
- Autorização via Policy + Gate (
Gate::authorize()), com a diferenciação prática entreviewAny(listagem) eview(recurso específico), e o cuidado de aplicar isso rota por rota já que o Laravel 11 não tem maisauthorizeResource. - Deploy real na AWS: EC2 (t2.medium), RDS MySQL, bucket S3 com policy de leitura pública, tudo com estimativa de custo pela calculadora da AWS (na faixa de USD 27–106/mês para essa carga).
- Instrumentação com Datadog (agent + APM para PHP), teste de carga com
wrkmostrando o endpoint sofrendo em ~12 req/s com timeouts, seguido de uma otimização cirúrgica (remover colunas e relacionamentos desnecessários do JSON de resposta) que saltou o throughput de 62 para 236 requests em 5 segundos — quase 4x de ganho só cortando payload.
Profundidade técnica
O evento vai fundo em decisões de arquitetura pragmáticas: a explicação de quando cache faz sentido num e-commerce (evitando vender produto sem estoque ou já deletado), a diferença entre autenticação stateless e stateful e por que isso importa para escalar horizontalmente, e uma discussão direta sobre repository/DDD serem complexidade desnecessária dentro do Laravel — sempre justificando com a experiência de projetos reais da comunidade. Na parte de monitoramento, o destaque foi usar o Datadog para identificar que o gargalo estava na aplicação/infra (EC2), não no banco (RDS respondendo rápido), e transformar isso numa otimização objetiva de query e payload — mostrando na prática o ciclo profile → diagnóstico → fix → novo teste de carga.
Faça parte do Clã
Esse tipo de imersão — código de produção, decisões de arquitetura justificadas e otimização guiada por dados, não por achismo — é exatamente o que rola de forma contínua no Clã Beer and Code. Se você quer esse nível de profundidade técnica com mentoria, comunidade ativa e conteúdo prático toda semana, é por ali que você entra.
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ã