Skip to content

bookmack tt study #950

@biantris

Description

@biantris

Entrevistas Backend — por @samsantosb

“Quase todas as respostas eram muito distantes do esperado.”
— Sam, após acompanhar entrevistas técnicas de backend como ouvinte.
Tweet original – 15/05/2025


Part. 1 – Perguntas frequentes nas entrevistas

1. Como evitar que duas transações idênticas aconteçam em sequência?

  • Estratégias:
    • Locks (pessimistas ou otimistas)
    • Idempotência com tokens
    • Hash das entradas + tempo
    • Deduplicação com filas

2. Como trabalhar com multi-câmbio em uma aplicação?

  • Estratégias:
    • API de câmbio (ex: Fixer.io, OpenExchange)
    • Tabelas de câmbio com cache
    • Normalização de moedas
    • Taxas dinâmicas por contexto

3. Quais tecnologias usar para monitoramento de uma aplicação?

  • Ferramentas comuns:
    • Prometheus + Grafana
    • ELK Stack
    • Datadog, New Relic, Sentry
    • OpenTelemetry para tracing

Tweet original


Part. 2 – Perguntas que já foram feitas ao Sam

1. Como lidar com operações concorrentes em uma aplicação financeira?

  • Soluções possíveis:
    • Transações ACID
    • Versionamento de registros (ETag, RowVersion)
    • Filas de mensagens
    • Locking (optimistic/pessimistic)

2. Quais opções nativas do Node.js para jobs/processamento assíncrono?

  • Nativas:

    • setImmediate
    • process.nextTick
    • worker_threads
  • Com bibliotecas:

    • Bull / BullMQ
    • Agenda
    • Kue
    • Bree
    • Temporal (orquestração)
    • Redis Streams

Tweet original


Part. 3 – Como aumentar a resiliência da API Node.js sem escalar

Pergunta:
Como tornar sua API Node.js mais resiliente sem escalar horizontalmente?

Técnicas e Ferramentas mágicas:

  • Node Cluster: múltiplos processos com balanceamento de carga interno
  • Graceful Shutdown: finalização segura de processos
  • Rate Limiting: limita requisições abusivas
  • Circuit Breaker: isola falhas externas (ex: lib opossum)

Tweet original


Part. 4 –

Contexto:
Código publicado pelo Sam é parte de uma issue real no GitHub.

Objetivo:
Melhorar a resiliência e controle de execuções em aplicações Node.js com lógica baseada em verificação de flags e controle de concorrência.

Tweet original

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions