В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Используйте NOT EXISTS: он выбирает продавцов, для которых отсутствует запись в таблице блокировок. Уникальный индекс по blocked.seller_id полезен и для корректности, и для поиска.
Если merge означает fan-in, запустите по читателю на вход и закройте общий выход после завершения всех читателей. Порядок между разными каналами не гарантируется.
Здесь небезопасная сборка SQL и неатомарность между UPDATE и публикацией события. Параметризуйте запрос и записывайте событие в outbox в той же транзакции.
Держите по одному текущему значению каждого канала, выдавайте минимальное и обновляйте только его источник. Для правильного порядка нужна голова каждого ещё открытого потока.
Неизвестное число URL удобно передавать каналом: источник закрывает его по окончании, работники завершаются, а координатор закрывает результаты после WaitGroup.
Добавьте mutex и выполняйте проверку с возможной вставкой под одной блокировкой. Существующее значение возвращается без замены, даже если это пустая строка.
Суммируйте денежное поле только у заказов со статусом delivered, заранее определив, учитываются ли возвраты, скидки и доставка. Без схемы можно дать лишь пример.