Backpressure в потоковой обработке. Реализация в Go.

Ответ

Backpressure - замедление производителя при перегрузке потребителя, чтобы не накапливать необработанные сообщения. В Go: ограничение числа горутин-воркеров (пул), каналы с буфером ограниченного размера, семантики с блокировкой при полном буфере. При чтении из Kafka ограничивают параллелизм обработки и commit только после обработки. Паттерн: worker pool с N воркерами, задачами по каналу.

sem := make(chan struct{}, 10)
for msg := range kafkaMessages {
    sem <- struct{}{}
    go func(m Message) {
        defer func() { <-sem }()
        process(m)
    }(msg)
}
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.