Modular Software on the Java Platform

When the wise, bearded men designed Java, there was one piece of the puzzle they just didn’t get around to finishing: Modularity. This talk explains the benefits of modular architectures and shows you how to implement it for Java based applications.

Back when the Java language and platform was designed there was one piece of the puzzle that the wise bearded men just couldn’t get around to finishing properly: Modularity.

Modularity done right can be incredibly liberating for your team: Features can be developed, tested and deployed independently. The need for branching and merging evaporates. Dead code can be efficiently and safely removed from your codebase. Developers can innovate and experiment without risking their sleep. People outside your team are free to extend your software without having to ask. They don’t even need to know you exist.

So if modularity has all of these benefits, why don’t we see a lot more of it? Because implementing modularity on you own is hard and tricky. OSGi was promising, but failed to deliver because it was too complex.

This talk shows you how to efficiently add modularity code base today. We start by presenting modularity as an architectural pattern and describe a structured approach to designing modular APIs. We then dive into the technical implementation of developing, packaging, distributing and deploying modules on the Java platform. We finish off by showing some real life implementations of modular Java systems.

Video producer: