Trilha Pleno Trilha

Padrão: outbox pattern

O curso trata do outbox pattern numa aplicação Rails que usa o Solid Queue. A fila fica em outro banco, então salvar um registro e enfileirar um job são dois commits que não podem ser atômicos. As aulas explicam por que nenhuma ordem dessas duas escritas é segura. Elas mostram uma tabela outbox gravada na mesma transação que o dado e um relay que a drena com FOR UPDATE SKIP LOCKED. Também abordam entrega at-least-once, duplicatas, o custo de adoção e quando não usar o padrão.

O que você vai aprender

  • ✓Por que duas escritas em dois bancos não podem ser atômicas
  • ✓Por que retentativas não cobrem a janela de queda e o after_commit só a estreita
  • ✓Como desenhar uma tabela outbox gravada na mesma transação que o dado
  • ✓Como um relay reivindica linhas com segurança usando FOR UPDATE SKIP LOCKED
  • ✓Entrega at-least-once e a idempotência que ela exige dos consumidores
  • ✓Quando uma reconciliação periódica é melhor escolha que um outbox
Prévia grátis · Aula 1 5 min de leitura

A escrita que não está na sua transação

Esta aplicação enfileira trabalho em segundo plano em poucos lugares: os mailers, os emails de notificação, os webhooks de parceiros e a busca do ícone do parceiro. O mais simples deles é app/services/admin/partners/save_partner_service.rb, mostrado aqui por inteiro:

Ler a aula completa grátis →

Currículo

7 aulas
Digite para buscar...