I would like to be able to build functionality for my application in a plugin style system for a couple reasons:

1. New projects can choose which plugins are necessary and not have code for functionality that's not needed
2. Other developers can build plugins for the system without needing too much knowledge of the core workings.

I'm not really sure how to go about implementing this. I would like to have a `plugins` folder to host these separately but I guess my questions are:

1. How do plugins interact with the core system?
2. How does the folder structure work? Would each hold the standard MVC structure: controllers, services, models, views, etc?

I guess if anyone has a tutorial or some documentation relating to this technique that would be helpful. I've done a bit of searching but it's all a little too closely related to the actual code they're working with instead of the concept and I hadn't found anything specifically related to nodejs.