In addition to Michael's comments, why would you want to reinvent the wheel?
As with any large project there will be a learning curve, but once you get your feet wet the ideas will start to flow and you'll find yourself being very productive. As far as communicating between modules, you might consider the design and implications of such activities. Real time communication and state handling is possible, but rarely worth the effort. Often similar behaviour can be implemented through data in the database itself, it really depends on your requirements.
Finally, don't forget the team of DotNetNuke enthusiasts that are here in the forums. They are always willing to lend a hand and share their experiences.
Good luck on your project!