После srv.Shutdown процесс завершается, а воркер не дописал пачку в базу
Кроме HTTP-сервера, в процессе работает горутина-воркер: она читает события из Kafka и пишет пачками в базу. При деплое main вызывает srv.Shutdown и выходит. Каждый деплой теряет последнюю незаписанную пачку, а смещения успевают закоммититься.
Как организовать завершение?
- Отменить контекст воркеров и дождаться их через errgroup
- Добавить time.Sleep(5 * time.Second) перед выходом
- Полагаться на то, что Shutdown ждёт все горутины
- Записывать события в базу по одному
