Testing is one of the most important phase of the software developement life cycle and yet the most ignored one. It helps reducing the chances of defects in the system.

E2E (end to end ) as the name says, is meant for testing the application from the start to the end. It will test the behaviour of our application, the UI and how much they respect the requirements.

Differences between E2E testing and unit testing

Unit testing are used to ensure that the services and the components of the application behave as they are intended (generally the logic of services and components). …


In the previous parts we maneged to create 3 springboot microservices and monitor them with prometheus and grafana.

In this part we’re gonna focus on the Log aggregation and analysis.

Why it is so important ?

Logs are essential informations, allowing us to better understand, analyze and diagnose certain malfunctions, as they can help us follow and trace the different actions carried out by the actors of our system. Only, it becomes very complex to exploit this critical data with so many applications, equipment, services, systems and managed elements in an information system.

In the first part we learned how to build spring boot microservices by creating 3 microservices (Product-Microservice, Order-Microservice, Client-Microservice).

As for now everything looks fine, but while working with such a complex architecture we need to keep an eye on our system in case of a any potential failure.

To do so , in this part we’re gonna see how to monitor,trace and observe the behaviour of our microservices using prometheus and grafana.

What is prometheus ?

Prometheus is an open source time-series database originally developed by SoundCloud. It comes with its proper query language PromQL and used for event monitoring and alerting.

Adding Micrometer Prometheus Registry to Spring Boot microservice



while developing a number of complex applications (E-commerce,streaming video, banking…), most developers are facing a lot of challenges such as:

-Availabilty: How can we make sure our application will always be available regardless of the behaviour of the users?

-Maintainability: Our application must evolve frequently and respond to quickly to new features without shutting down the whole application.

-Evolution: Technology used to develop the application evovle every day , so we must make sure our application has the ability to adapt to this evolution

And of course a lot of other problems and challenges that we are going to…

While developing a spring boot application , most developers have to define some fixed properties in their application.properties like the secret key for the token , the session timeout, the path of uploaded files and a lot of other properties.

The problem with this approch is that these properties are loaded only once when the server starts. So what’s gonna happen when we want to change some properties while the app is in prod. In this cas we have to shut down the server , change the properties and restart the server.

Even worse , what if we’re working multiple…

Whenever we talk about web development, our biggest concern goes to the security of our application.How can we protect our resources ?and how can we protect the users informations ?.
In this article we are going to implement a web application using spring boot as a back end framework and angular as a front end.
We are going to use spring security with jwt and http only cookies.
A good pratice is to use two tokens : access token(short duration) and refresh token(long duration) , if the client has an invalid access token and a valid refresh token the acces token will be…

Firas Messaoudi

Full stack (Spring boot — Angular ) developer and computer science engineering student

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store