Доброго времени суток, изучаю JS и в данный момент платформу NodeJS, столкнулся с тем, что не могу понять, как правильно пишутся свои модули на Nod-е. Откровенно говоря, в голове уже каша из event-ov, callback-ov, nextTickov (setTimeout)
Везде как эталон асинхронности приводят пример модуль FS:
var fs = require('fs');
fs.readFile('name.txt', function (err, data) {
});
Подключили модуль fs, вызвали его метод и передали в него переменную и колбэк. 
Проблема в том, что нигде не пишут, а что там происходит внутри. Путем гугления и изучения, пришел к такому коду :
// my custom module
function MyModule(something, callback){
    if(something === 'OK'){        // Обрабатываем как-то something и передаем дальше
      process.nextTick( сallback(null, something));
    } else {
       process.nextTick( callback('Error')); 
    };
};
module.exports = MyModule;
Ну и использование его как и модуль fs:
var MyModule = require('MyModule');
MyModule('something', function( err, value ) {
   if(err) console.log('Вай-вай, беда!')
   // ну а тут делаем еще что-то с value
});
Ну а теперь сам вопрос, будет ли это асинхронным и вообще работать или я не в ту степь забрел совсем ?
Благодарю.
ЗЫ. так же в голове крутится идея навесить на всё что можно event-ы, но пока не могу оформить связно как это вижу. Если кому не сложно киньте код подобного на ивентах или линк на статью толковую. Еще раз спасибо.