For a moderately complex application to manage complexity it needs to be broken up into smaller modules – which can be developed / tested independently. The modularization should be based on the domain rather than along layers (dao/service etc). This session will focus on some guidelines on how to breakup large applications into modules and how to realize that modularity in an application that uses Spring, Hibernate, Maven. The talk is based on the experience gained implementing (and refining) these techniques in 3-4 large product development that I have been involved in.