A common pattern when serving slow web requests is to send to a queue, such as beanstalkd, and then handle the work in async fashion.
In Go we can implement a queue with channels or forget the queue idea completely. Either way, we don't need to serialize/deserialize requests any more.
The usual caveats apply here: whether these solutions are a fit for you depend on your particular details.
This article added to my determination to move away from queues.