Recently I came across an application which manage transaction's at Dao layer that means there is no proper transaction management and if an exception occurs during runtime will leave inappropriate data in database. Consider this simple Architectural layers Brief description of each block starting from the bottom. DB1 .. DBn → Databases, an application sometimes refers to multiple databases and simple application has one. Dao Layer → Encapsulates logic to add, update, delete and read data from Databases using JPA, Hibernate or JDBC. Entity/Dto → Simple Pojo classes which encapsulate database entities WebServices Client → Another Integration Layers like Dao which communicates with other systems via SOAP, JMS etc. Service Layer → This layer contains business logic which encapsulate the data (Dao & Webservices client) they operate on and provide hardened interfaces as the only way to access their functionality. This approach reduces side effects and allows...