Posts

Showing posts from January, 2022

How Spring Boot is relevant in modern Java based application development

Image
  In the following blog post, I want to take a closer look at the question of whether the application framework   Spring Boot   is still relevant in modern Java-based application development. I will take a critical look at its architectural concept and compare it against the   Jakarta EE   framework. I am aware of how provocative the question is and that it also attracts incomprehension. Comparing both frameworks I am less concerned about the development concept but more with the question about runtime environments.  Both – Spring Boot and Jakarta EE – are strong and well-designed concepts for developing modern Microservices. When I am talking about Jakarta EE and Microservices I always talk also about  Eclipse Microprofile  which is today the de-facto standard extension for Jakarta EE. Developing a Microservice the concepts of Spring Boot and Jakarta EE are both very similar. The reason is, that a lot of technology of today’s Jakarta EE was inspired by Spring and Spring Boot. The conc

Agile Architecture

Image
  Project development using agile   methods is nothing new. However, it is very common to associate the idea that in agile projects there is no need to design the architecture of a system. The question that remains is: How the system's architecture design would fit into Agile development? Many will argue that in an agile development scenario, it's not useful stopping to think about the architecture so that it will inevitably change over time. We agree with the second part of this statement, the architecture will change during the project and the longer the project time, the greater the probability of changes in the initially defined architecture. Much of the perception against architectural planning and the understanding of this activity as something bureaucratic and often even a bottleneck in project progress has its origins in experiences with software development using predictive  methods of software development . The section below provides a comparison between predictive an

Migrate a Monolithic Application to Microservices

Image
Monolithic Architecture Monolithic applications  are big fat complex single applications that have high complexity. Besides, they are hard to maintain and not easily deployable as well. Failure in one part can bring the whole system down. higher database complexity, improper resource utilization, etc. To give you a better idea of what  monolithic architecture  is, here are some of its characteristics: They are a really large single application that serves all the types of browsers, mobile applications, or any 3 rd  party integrations. They are very complex and have huge structures and files. Monolithic apps are very hard to maintain. (In terms of coding standards, bug fixing, etc). Continued Development will be difficult as large applications cannot deploy very frequently. (Due to the fear of failure, deployment can be time-consuming, you should have to interrupt background jobs before deployment so it will increase the risk factor which leads to fear of deploying frequently). Scaling