Skip to content

Instantly share code, notes, and snippets.

View jpcmf's full-sized avatar
🎯
Focusing

João Paulo Fricks jpcmf

🎯
Focusing
View GitHub Profile
Algoritmo Sinal usado Quando tende a ajudar Principal limitação
Round Robin Ordem sequencial Backends homogêneos e pedidos semelhantes Não observa trabalho, latência ou conexões ativas
Weighted Round Robin Ordem + pesos Capacidades diferentes e canary Peso não é medição dinâmica de saturação
Least Connections Conexões ativas Sessões de duração variável Conexão pode estar ociosa ou multiplexar pedidos
Least Outstanding Requests Pedidos em andamento HTTP com duração muito variável Não mede sozinho o custo futuro do pedido
Least Time Latência observada + conexões APIs sensíveis à latência Pode sofrer com médias, outliers e feedback
IP Hash IP do cliente Afinidade simples para legado NAT e proxies podem concentrar muitos usuários
Generic Hash Chave definida pelo operador Cache, tenant ou estado localizado Chaves quentes criam hotspots
Consistent Hashing Chave + remapeamento reduzido Cache e estado duran
Pergunta operacional Layer 4 Layer 7
O que costuma observar? IP, porta, protocolo e fluxo URL, host, método, cabeçalhos, cookies e conteúdo HTTP/gRPC
Unidade típica Conexão ou fluxo Requisição ou sessão de aplicação
Protocolos comuns TCP, UDP, TLS e protocolos proprietários HTTP, HTTPS e gRPC
Roteamento por caminho? Não Sim
Terminação TLS? Pode ocorrer ou não, conforme o listener É comum em HTTPS
Melhor encaixe Conexões persistentes e protocolos não HTTP APIs, sites e microsserviços HTTP
Principal trade-off Menor visibilidade da aplicação Maior processamento, mas decisões mais inteligentes
@jpcmf
jpcmf / contract.md
Last active September 5, 2026 13:34
Elemento do contrato Exemplo
Pré-condição O usuário precisa estar autenticado e o pedido deve conter pelo menos um item.
Formato de entrada Cada item deve possuir productId e quantity, sendo a quantidade um número inteiro maior que zero.
Pós-condição Em caso de sucesso, a API retorna 201 Created e um pedido com id, status e total.
Garantia de erro Dados inválidos geram 400; usuário não autenticado gera 401; conflito de estoque pode gerar 409.
Invariante O total do pedido não pode ser negativo e o status deve pertencer a um conjunto conhecido.
Indicador de Mercado Métrica Observada Participação Percentual / Relevância
Total de Vagas Analisadas 6.498 100% do escopo auditado
Vagas com "Frontend" no Título 24 ~0,37% do total
Vagas Exigindo Frameworks Modernos 429 ~6,60% do total analisado
Vagas com Frameworks sem o Título "Frontend" 407 ~94,86% das vagas com stack moderna
Diversidade de Títulos Alternativos 307 cargos Distribuídos em 68 empresas