How WebApps were built - Monolithic - MVC Architecture
When we built out first webapp using Spring MVC back in 2010, I believed that was best choice available given our requirement. Being a startup, getting our first mvp done was very important. So we went around with traditional path of generating lot of dynamic content using JSP in the backend. Even though we had good separation of view (HTML, CSS, Images etc) and Java script(Dom Manipulation) etc, most of the content was still generated by backend.
We made traditional calls to the backend, which in turn supplied JSP pages or lot of cases even static assets(eventually supplied by CDN). However, majority of the pages had some sort of JSP interaction. Obviously we did best we could to use frameworks to use templates and patterns etc.
This however historically caused few issues, to name a few among many,
1. First and Foremost, We had to deploy complete software stack very often, even when it could have avoided(eg, some JSP generation logic changed, that caused deployment of front end and backend codebase).
2. Dependency between Front end teams and backend teams was more tighter and led to slow development cycle. Debugging was cumbersome.
3. Maintaining multiple versions of software stack became challenging.
4. IF you had Multiple client strategy(Mobile, WEB, API) etc, people often ended up with different front-end layer, that led to various issues.
This was true, if use Java tech stack or Microsoft ASP tech etc.
In subsequent blogs, I will discuss, how this got solved by introduction of new frameworks and separating client and server side technology stacks.