Got a chance to play with Goliath for a bit. You don’t need to do much work to mount Grape behind it. Grape figures out content-negotiation and formatting for you, so just stream the response through Goliath.
Tests for something like this are a little bit tricky, because Goliath is fully asynchronous.
Working code in https://github.com/dblock/grape-on-goliath.
There’s also a very complete demo with asynchronous IO and PostgreSQL here. Haven’t tried it, but looks very promising.