add retry logic for producing