I've been doing some research on Goliath, and seems like something I will want to migrate over to soon. My question is, one of the promises of Goliath is that it "preserves the look and feel of a synchronous API!".
However from the examples, I see that I still need to use em-synchrony, em-http etc. One of the reasons I'm looking into moving away from thin, is because of the poor official evented library support for some databases (i.e mongo)
When working with gevent in Python, the gevent library will monkey-patch all socket calls and automatically cause the current fiber/greenlet to yield to another fiber/greenlet anytime a blocking network operation initiates. This causes it to work with almost every database driver without any work required from said driver's authors. Am I correct that goliath does not work like this?
Is it correct that Goliath still needs em-* libraries/drivers for any blocking network operations, but it's advantage over thin is that you don't need to write callbacks for these, instead it is code that can be linearly written?