I've read up a good bit on node.js and I'm a little confused as what constitutes thread blocking in a node.js server, in this case connecting to a db (heroku postgres) 

Take for example:

```
app.get('/search', function(req, res){
    var id = req.query.q;
    **connect to db find items**
         callback ------> **another db transaction**
                    callback ------> res.json({some:data});

});

```

My question is if this would block the main thread? Does everything that interacts with an npm module get thrown through the event loop, therefore non blocking? Is there a general rule or set of guidelines that defines what is and what isn't thread blocking?