We are trying to move (slowly) into Microservices architecture from our current monolithic based architecture. I've done my research on microservices architecture and would like to get some feedback on the architecture I've described below from the community. Information about the applicationIts a web application used internally with around 10-20 users. The application shows reports in charts and tabular format and export functionality to pdf/xsl/csv. In time the application might grow and and more functionalities will be added.What i had in mind is to have two Microservices (MS) serving different purposea Report (MS) and Engine (MS).Engine consists of the following:Major Libraries: Spring Boot, Spring Rest, Maven, JDBC TemplateArchitecture: DAO, Service and Rest ControllerApplication Server: Tomcat (embedded)Short Summary:DAO layer uses JDBC template because of complex SQL queries which will be passed on to Service for any business rules or other logic. Rest Controller which takes data from service layer and serves as the interface between Engine and Report Report (MS) consist of the following:Major libraries: Spring Boot, Spring Rest, Maven, JSP, Javascript/Jquery/Architecture: Service , Controller, Front End technologiesApplication Server: Tomcat (embedded)Alternative Technologies for Report (MS):AngularJS 2, NodeJS, Javascript/Jquery/HTML/CSSShort Summary:Service layer requests information from Engine(MS) via REST API, data will be passed on to Controller and served to appropriate view (combination of JSP, javascript/jquery/css/html etc).Also considered using AngularJS 2 or NodeJS and Javascript to replace Java Technology and Tomcat Application Server as soon as I get some feedback.Database Facts - external / separate server - currently evaluating MySQL, MSSQL - contains lots of data average 10K per day per table - properly designed (normalization/indexing etc as claimed by DB Admin) - queries are extremely long 8 A4 with proper indentation, better off as stored procedure or use jpa data?So far I have identified high level pros and cons with this design, appreciate if anyone can add more. ThanksProsReport MS using Java/Javascript/JSP can be easily replaced easily by any Front End technology without affecting Engine MSReport MS is loosely coupled with Engine MS and can use other REST API sourceSpring Boot reduces alot of configuration and wiring of beans plus it comes with embedded tomcat and DBsUsing Maven for build and library managementConsNetwork latency between Report and Engine MS since it has to traverse the network to transfer dataExtra code complexity writing in Java for Backend Services(Engine MS) and JSP/Javascript or Angular JS for frontendDAO Layer hard coding queries as strings of SQL query difficult to debug
Microservices Architecture separating backend and front end
java;architecture;javascript;node.js;microservices