Worker Pools e Rate Limiting em Go: Concorrência Controlada e Vazão
Como controlar a concorrência com worker pools e rate limiting em Go, evitando criar uma goroutine por tarefa sem limite.
60 posts
Como controlar a concorrência com worker pools e rate limiting em Go, evitando criar uma goroutine por tarefa sem limite.
Aula completa sobre portas e adaptadores, da analogia do restaurante a testes com fakes, com exemplos em Go, Java, Kotlin e TypeScript e diagramas animados.
No desenvolvimento de software corporativo, gerenciar o ciclo de vida de recursos finitos como conexões de rede, arquivos em disco, transações de banco de dados e travas de sincronização em memória…
Em qualquer linguagem de programação moderna, a pilha de execução (call stack) é a região de memória responsável por registrar o andamento das funções, suas variáveis locais e os endereços de…
Em sistemas distribuídos e servidores concorrentes, disparar uma tarefa é fácil. O verdadeiro desafio da engenharia de software é saber quando e como fazê-la parar.
Por mais de uma década, a ausência de tipos genéricos foi a característica mais debatida e controversa do Go.
Em qualquer aplicação que processe dados além de chamadas triviais, o gerenciamento de memória dinâmica é o fator determinante entre um serviço com latência previsível em microssegundos e um sistema…
Em projetos de software que crescem além de alguns arquivos, a maior força destruidora da velocidade de entrega é a entropia do acoplamento.
Em sistemas orientados a concorrência baseados em troca de mensagens, um dos padrões mais desafiadores é coordenar múltiplos canais de comunicação simultâneos.
Imagine que você precisa pedir uma informação para um colega que trabalha em outro departamento da sua empresa.
A mecânica completa dos canais em Go, da analogia mais básica à estrutura hchan do runtime, com 19 diagramas animados.
Como o scheduler do Go decide qual goroutine roda, em qual thread e quando, com o modelo G:M:P e quatro diagramas.