Golang
Implementar um limitador de taxa em memória, seguro para threads, usando o algoritmo Sliding Window ou Token Bucket. Interface: type RateLimiter interface { Allow(key string) bool } Requisitos: - Limite: N pedidos por T segundos para uma chave - Implementação segura para threads - Sem bibliotecas externas - Minimizar bloqueios - Explicar: - condições de corrida possíveis - impacto no GC - comportamento com um grande número de chaves Parâmetros de entrada: NewRateLimiter(limit int, window time.Duration)
Que projetos estás a liderar, quais são as tarefas de alto nível — o que estás a fazer?
Como realizavam a recolha de métricas e monitorização?
A map é passada por referência para uma função em Go?
Por que está a pensar em mudar de emprego agora?
Equipa em SQL para obter o plano de execução da consulta
Três mini-perguntas sobre Docker: o que é Docker, Docker Compose, Docker Image?
O que exatamente foi armazenado em cache e quais regras de invalidação foram usadas?
Como funciona o DISTINCT?
Como avalia a viabilidade de usar Gestão de Memória Baseada em Arena em serviços Go com alta carga?
Por que o manipulador de API sempre retorna o status 500? O que há de errado com isso?
Como avalia o seu nível de inglês?
Está considerando ativamente as propostas? Existem etapas finais?
Como foi garantida a tolerância a falhas do serviço?
Fale sobre si mesmo e sua experiência de trabalho.
Qual é a diferença entre embedding e composição em Go?
Tem finais ou ofertas de outras empresas?
O que deve fazer no consumidor para exatamente uma vez?
func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(advertiserID) if err != nil { return err } partner, err := r.find(partnerID) if err != nil { return err } advertiser.Balance -= amount partner.Hold -= amount partner.Balance += amount if err := r.save(advertiser); err != nil { return err } if err := r.save(partner); err != nil { return err } r.totalPayouts++ return nil }
Por que os consumidores do Kafka recebem o evento 'pedido entregue' antes do evento 'pedido criado'? Como corrigir isso?