Especificação da área de responsabilidade: máquina de estados, Transactional Outbox, bloqueios otimistas
Golang
Que sistemas de containerização e orquestração conhece?
Quais são as vantagens de usar threads em vez de criar processos separados?
Quantas tentativas de retry devem ser feitas antes de enviar uma mensagem para a DLQ?
O que fazia o candidato e o que fazia o resto da equipa na Avito?
Por que foi adicionado o serviço de verificações antifraude à área de responsabilidade do candidato?
Como era exatamente o caminho de bloqueio otimista desde a recepção da mensagem do Kafka até à atualização na base de dados?
Que métodos de isolamento o Linux fornece para os contenedores?
Quais técnicas são usadas para aumentar a capacidade de transmissão e o volume de dados nos sistemas de gestão de bases de dados?
Qual será o resultado de escrever num canal fechado? Deadlock, pânico ou a operação de escrita retornará um erro?
O que acontece se iniciar uma goroutine e nela chamar panic? A goroutine irá parar ou toda a aplicação irá parar?
O que está na pasta /proc?
Responda às perguntas Já trabalhou com sistemas distribuídos e suas limitações? Quais? Você lida com documentação, métricas, monitoramento? Sim Não Você conhece a teoria CAP? Sim Não Você acha que a cobertura do código com métricas ou a atualização da documentação requer necessariamente uma tarefa adicional de dívida técnica?
Para onde vai a tentativa de repetição em caso de conflito de versão de bloqueio otimista — da mensagem Kafka ou do serviço?
Quando são calculados os argumentos de funções atrasadas — no momento da definição ou no momento da chamada da função?
Qual dos mecanismos existe em Go: herança ou composição?
Qual é a ordem de iteração dos elementos num container map? É fixa por um determinado algoritmo, arbitrariamente definida durante a compilação ou definida em tempo de execução?
Quando será chamada a função diferida defer? Ao sair do bloco local, ao sair da função ou ao terminar a aplicação?
Não surgirá uma situação em que um veredicto antigo de rejeição vá para DLQ e um anúncio com preço incorreto nunca seja rejeitado?
Quem cuidava dos serviços de verificação (antifraude, verificação de imagens, texto, spam, limites)?