It helps if you don't buy in to a giant framework. If you do, you end up saddled with all the bad ideas that were in circulation whenever it was released, as this post points out. My team has been using roughly the same setup for over a year now - not because we hate it and are stuck with it but because we like it.<p>Also, most everything we write presents an external interface of either an EventEmitter or a stream, which are well-understood Node concepts. (You might argue streams could stand to be a bit better-understood... fair enough.) Then the implementation details can change and it doesn't matter because everyone knows how to listen to an EE or pipe into a stream.<p>Keep it simple!