DEV Community

Francisco Zanfranceschi
Francisco Zanfranceschi

Posted on

[Desafio] - Error Handling em Consumo de Mensagens

Conteúdo original em https://twitter.com/zanfranceschi/status/1579256484533190656


Ei dev,

Você lida bem com seus erros? E os erros dos sistema que desenvolve? Deveria lidar bem com pelo menos um deles, né? 🥲

Enfim, tenho um desafio caprichado pra você: é um cenário de ERROR HANDLING usando processamento assíncrono via filas!

Bora?!

cc @sseraphini

Image


Esse é um desafio pra quem já conhece pelo menos um pouquinho de integrações via filas/tópicos ─ um desafio de nível médio.

Para que o desafio faça sentido, você precisa saber o que ACK (acknowledge) significa. Se não souber, dê uma procurada sobre isso antes, fechado?

Image

Image

Image


O cenário do desafio são mensagens que possuem listas de itens não relacionados que precisam ser processados individualmente.

A questão central é o que fazer em caso de falha no processamento de apenas alguns desses itens quando nenhum item válido pode deixar de ser processado.

Image


Esse diagrama de sequência mostra em alto nível os possíveis casos:

  • ok ─ quando tudo dá certo

  • erro transiente/temporário ─ ex.: um serviço indisponível

  • erro persistente/irrecuperável ─ quando não faz sentido tentar processar de novo; ex.: um CPF ou data inválida

Image


Agora, o desafio:

Me diga como você lidaria com cada um dos cenários aqui apresentados. Como faria o error handling deles?

obs.: já usei esse desafio como parte de uma etapa de system design de processos seletivos.

Image


Resumindo o desafio:

Um consumidor lê uma mensagem. Essa mensagem possui uma lista de itens a serem processados individualmente. O que fazer quando o processamento de apenas alguns itens falham?

Lembre-se: você não pode deixar de processar itens válidos!


É isso!

Muito obrigado se leu até aqui! ♥️

Se curtiu, dá um RT no primeiro tweet pra ajudar, like, comenta, compartilha no grupo da família, manda pro crush, etc.

Top comments (0)