1) горутины, потоки И все что около них:
— чем отличаются
— может ли поток выделить себе память в течение работы? — почему горутины легковесные
— можно ли ограничить кол-во потоков?
— как думаешь, по каким критериям нужно ставить gomaxprocs? (этот вопрос вытекает из предыдущего)
— сколько одновременно может быть запущено горутин?
— а что если у меня одно ядро и я запустил 100 горутин? (этот вопрос вытекает из предыдущего)
— сталкивался ли с дедлоками?
— гошка может определять дедлоки?
— какая есть тулза для диагностики дедлоков? (я так понимаю он имел в виду goleak от uber)
2) live-coding — задача на написание своей реализации кэша из задачника
— у нас стала нагрузка на чтение и запись 50/50, что делать будем? (написать решение с партициями)
— как бы тут сделал инвалидацию кэша? (ttl)
— стоит ли кэшировать запросы которых нет в базе и в кэше? (404 ответы) (тут нужно порассуждать просто)
— задача на lru cache, порассуждать, как бы реализовал (эта задача есть в задачнике)
— задача на урлы, пробежаться по ним (есть в задачнике)
— пробежаться асинхронно — как отменить выполнение всех горутин? (контекст)
— какие бы тут тесты написал? (найти корнер кейсы)
— есть ли какая нибудь проблема со стандартным http.Get?
— sql задача пользователь чат сообщение (есть в задачнике)
— выбрать все чаты пользователя вася в формате chatid, chatname
— что будет если left join сделать? (вопрос вытекает из предыдущего)
— какой бы индекс повесил бы на этот запрос? (на васю)
— у нас распухла база, что делать будем? нужно определить какая из таблиц первая распухнет и как её шардировать
— что такое references? можем без вреда удалить первичный ключ чтобы все ссылающиеся не заругались? (нет)
— задача про сервис аналитики, типо теряем заказы, что делать будем?
— здесь либо outbox либо kafka (но он мне сказал что кафку у нас аналитика не читает)
— что делать если два outbox воркера захватили одни и те же данные? (как вариант решения select for update)
— как здесь сделать observability? (прометей логи трейсинг рассказать про это)