This content originally appeared on DEV Community 👩💻👨💻 and was authored by Francisco Zanfranceschi
Conteúdo original em https://twitter.com/zanfranceschi/status/1572256034340868097
Ei dev,
Pra você que curte um desafio de System Design, pega esse aqui!
O desafio é melhorar uma integração com muitas falhas com um parceiro; idealmente diminuindo o acoplamento temporal.
Cola mais pros detalhes.
cc @sseraphini
↓
VISÃO GERAL
Esses desenhos mostram um pouco da integração entre DOLLARZ (o serviço do seu time) e COTAÇÃO DO DÓLAR (o serviço de terceiros que oferece a cotação do dólar do dia).
(Pra simplificar o desafio, a premissa é de que o dólar é cotado diariamente apenas.)
Rápida explicação sobre a nomenclatura CACHE MISS (e HIT):
CACHE MISS: é quando a informação não é encontrada no cache, seja pela expiração do item, seja pela aplicação não estar "aquecida".
CACHE HIT: quando a informação é encontrada no cache.
PROBLEMA
O horário do dia em que a cotação muda é instável (pode ser de manhã, de noite, ninguém sabe... esse serviço de cotação do dólar é realmente ruim). O melhor que o seu novo time pôde fazer foi manter um cache de uma hora, mas mesmo assim há muitas falhas (HTTP 500).
Essas falhas refletem no aumento das chances de mostrar a cotação errada do dólar para seus usuários. E isso acarreta em muita operação para correção e frustração dos usuários (as compras com a cotação incorreta são desfeitas).
DESAFIO
Tendo a liberdade total de mudança/criação do seu lado (DOLLARZ), o que poderia ser feito para melhorar a experiência do usuário e diminuir a operação de correções de inconsistências?
PREMISSAS
Nada pode ser alterado no serviço COTAÇÃO DO DÓLAR;
A área de engenharia preza pelo desacoplamento temporal ou, pelo menos, sua diminuição – tente ir nessa linha;
+
- O seu time notou que quando as falhas começam a ocorrer na integração (respondendo com erros HTTP 500), após cerca de 20 requisições, o serviço se restabelece (é, estranho mesmo).
O que DOLLARZ faz realmente não está bem descrito, mas isso não deveria ser um problema pra esse desafio fictício – foque no problema específico da integração. Não existe o jeito certo, não tem pegadinha. É apenas um exercício e faça como quiser!
Seria legal demais se postasse aqui seu desenho da solução.
Se leu até aqui, dá um abraço aqui ó 🫂
Muito obrigado pela moral! ♥️
This content originally appeared on DEV Community 👩💻👨💻 and was authored by Francisco Zanfranceschi
Francisco Zanfranceschi | Sciencx (2022-09-20T16:11:03+00:00) [Desafio] – Diminuir Problemas de Acoplamento. Retrieved from https://www.scien.cx/2022/09/20/desafio-diminuir-problemas-de-acoplamento/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.